static void Main(string[] args) { // Text containing russian letters - needs care with Encoding! var text = "Привет, {0}!"; // Implicit conversion string --> EncodedString Print(text, "world"); // Create EncodedString from System.String but use UTF8 which takes 1 byte per char for simple English text var encodedStr = EncodedString.FromString(text, Encoding.UTF8); var fileName = Path.GetTempFileName(); // Implicit conversion EncodedString --> byte[] File.WriteAllBytes(fileName, encodedStr); // Explicit conversion byte[] --> EncodedString // Prints *wrong* text because default encoding in conversion does not match actual encoding of the string // That's the reason I don't recommend to have this conversion! Print((EncodedString)File.ReadAllBytes(fileName), "StackOverflow.com"); // Not a conversion at all. EncodingString is instantiated explicitly // Prints *correct* text because encoding is specified explicitly Print(new EncodedString(File.ReadAllBytes(fileName), Encoding.UTF8), "StackOverflow.com"); Console.WriteLine("Press ENTER to finish"); Console.ReadLine(); }