В нем перечислены 3 опции
Эти параметры, по-видимому, актуальны для сборок .NET Framework. Если ваша сборка - .NET Core, то быстрый гугл придумал , что может помочь . Похоже, что это ядро .NET Core для AssemblyResolve, но я смотрел на него только на 5 секунд.
См. эта кавычка от Bjarne Stroustrup :
Оператор. (точка) могла в принципе быть перегружена с помощью той же техники, как используется для->. Однако выполнение так может привести к вопросам о том, ли предназначена операция для объектной перегрузки. или объект, упомянутый. Например:
class Y { public: void f(); // ... }; class X { // assume that you can overload . Y* p; Y& operator.() { return *p; } void f(); // ... }; void g(X& x) { x.f(); // X::f or Y::f or error? }
Эта проблема может быть решена несколькими способами. Во время стандартизации это не было очевидно, какой способ будет лучшим. Для получения дополнительной информации см. Дизайн и Эволюция C++ .
Stroustrup сказал, что C++ должен быть расширяемым, но не изменяемый язык.
точка (доступ атрибута) оператор, как рассматривалось, как слишком близкий к ядру языка позволил перегружаться.
Видят Дизайн и Эволюция C++ , страница 242, разделяют 11.5.2 Умных Ссылок .
, Когда я решил позволить перегружаться оператора
->
, я естественно рассмотрел, мог ли оператор.
быть так же перегружен.В то время, я считал следующие аргументы окончательными: Если
obj
объект класса затемobj.m
, имеет значение для каждого участникаm
из класса того объекта. Мы пытаемся не сделать язык изменяемым путем переопределения встроенных операций (хотя то правило нарушено для=
из страшной потребности, и для унарного&
)., Если бы мы позволили перегружаться
.
для классаX
, мы не могли бы получить доступ к членамX
лет нормальными средствами; мы должны были бы использовать указатель и->
, но->
и&
, возможно, также был переопределен. Я хотел расширяемый язык, не изменяемый.Эти аргументы тяжелы, но не окончательны. В частности, в 1990 Jim Adcock предложил позволить перегружаться оператора
.
точно способ, которым оператор->
.
"I" в этой кавычке является Bjarne Stroustrup. Вы не можете быть более авторитетными, чем это.
, Если Вы хотите действительно понять C++ (как в, "почему это - этот путь"), необходимо ли абсолютно прочитать эту книгу.
Stroustrup имеет ответ для этого вопроса :
Оператор. (точка) могла в принципе быть перегружена с помощью той же техники, как используется для->. Однако выполнение так может привести к вопросам о том, ли предназначена операция для объектной перегрузки. или объект, упомянутый. Например:
class Y { public: void f(); // ... }; class X { // assume that you can overload . Y* p; Y& operator.() { return *p; } void f(); // ... }; void g(X& x) { x.f(); // X::f or Y::f or error? }
Эта проблема может быть решена несколькими способами. Во время стандартизации это не было очевидно, какой способ будет лучшим. Для получения дополнительной информации см. D& E.