public static void Main()
var magicNumberStr = "841359135964216237";
var magicNumberVal = 841359135964216237;
var encoderAscii = new System.Text.ASCIIEncoding();
var encoderUtf8 = new System.Text.UTF8Encoding();
Console.WriteLine("UTF8 string variable: " + string.Join(",", encoderUtf8.GetBytes(magicNumberStr)));
Console.WriteLine("UTF8 long.ToString(): " + string.Join(",", encoderUtf8.GetBytes(magicNumberVal.ToString())));
Console.WriteLine("ASCII string variable: " + string.Join(",", encoderAscii.GetBytes(magicNumberStr)));
Console.WriteLine("ASCII long.ToString(): " + string.Join(",", encoderAscii.GetBytes(magicNumberVal.ToString())));
RunStringComparisonTests(magicNumberStr, magicNumberVal);
public static void RunStringComparisonTests(string magicNumberStr, long magicNumberVal) {
Action<string, bool> test = (string name, bool isEqual) => {
Console.WriteLine((isEqual ? "==" : "!=") + " " + name);
isEqual = string.Equals(magicNumberStr, magicNumberVal.ToString());
test("'==' operator", isEqual);
isEqual = string.Equals(magicNumberStr, magicNumberVal.ToString());
test("Default string.Equals", isEqual);
foreach (StringComparison sc in (StringComparison[]) Enum.GetValues(typeof(StringComparison))) {
isEqual = string.Equals(magicNumberStr, magicNumberVal.ToString(), sc);
test(sc.ToString("G"), isEqual);