В основном символ, который выглядит как «e» во втором имени класса, не является символом ASCII. Если вы поместите этот исходный код в текстовый файл с кодировкой, которая его поддерживает (например, UTF-8), и сообщите компилятору C #, какую кодировку использовать (UTF-8 по умолчанию, я считаю), то он будет просматривать их как разные имена классов .
Игнорирование не-ASCII части, это действительно просто класс:
public class Hello {}
public class He11o : Hello {}
В некоторых шрифтах вы можете определить разницу между строчными буквами ell и one, но в некоторых вы не можете. Это разные персонажи.
Когда вы попытались вставить его в блокнот, это не удалось, потому что используемая вами кодировка ANSI (ANSI - неоднозначный термин) не включает этот символ.
РЕДАКТИРОВАТЬ: Ваш второй фрагмент не компилируется по той очевидной причине, что одно и то же имя класса было объявлено дважды. Не два разных имени, которые выглядят одинаково, но на самом деле то же имя .