Наблюдая System.String
класс в ILSpy
я нашел следующий индексатор:Как работает индексатор строк?
public extern char this[int index]
{
[__DynamicallyInvokable, SecuritySafeCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
Это индексатор retieves полукокс из строки по индексу и ограничивает его сеттер (что делает его неизменен, я полагаю). Но как работает этот геттер? Где он берет символ с? И как автоматизатор отладки реализует этот гейтер индексатора?
Возможно, http://stackoverflow.com/questions/12550749/what-is-the-dynamicallyinvokable-attribute-for помогает? –
«Откуда убирает этот символ?» Когда вы видите 'MethodImplOptions.InternalCall', это означает, что« мы не собираемся вас показывать »(или более вежливо,« это собственная реализация, частная для компонента »). – dasblinkenlight
InternalCall означает «реализовано в CLR» –