国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C# Spec燒腦章節(jié)Namespace and type names

2022-02-16 23:22 作者:澄不空  | 我要投稿

這一節(jié)太可怕了。沖沖沖。

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/basic-concepts#namespace-and-type-names

The meaning of a?namespace_or_type_name?is determined as follows:

  • If the?namespace_or_type_name?is a?qualified_alias_member, the meaning is as specified in?§13.8.1.

  • Otherwise, if the?namespace_or_type_name?is of the form?I?or of the form?I<A?, ..., A?>:

    • If?x?is zero and?I?is the name of a namespace in?N, then:

    • Otherwise, if?N?contains an accessible type having name?I?and?x?type parameters, then:

    • Otherwise, if the location where the?namespace_or_type_name?occurs is enclosed by a namespace declaration for?N:

    • If the location where the?namespace_or_type_name?occurs is enclosed by a namespace declaration for?N?and the namespace declaration contains an?extern_alias_directive?or?using_alias_directive?that associates the name?I?with a namespace or type, then the?namespace_or_type_name?is ambiguous and a compile-time error occurs.

    • Otherwise, the?namespace_or_type_name?refers to the namespace named?I?in?N.

    • If?x?is zero and the location where the?namespace_or_type_name?occurs is enclosed by a namespace declaration for?N?and the namespace declaration contains an?extern_alias_directive?or?using_alias_directive?that associates the name?I?with a namespace or type, then the?namespace_or_type_name?is ambiguous and a compile-time error occurs.

    • Otherwise, the?namespace_or_type_name?refers to the type constructed with the given type arguments.

    • If?x?is zero and the namespace declaration contains an?extern_alias_directive?or?using_alias_directive?that associates the name?I?with an imported namespace or type, then the?namespace_or_type_name?refers to that namespace or type.

    • Otherwise, if the namespaces imported by the?using_namespace_directives of the namespace declaration contain exactly one type having name?I?and?x?type parameters, then the?namespace_or_type_name?refers to that type constructed with the given type arguments.

    • Otherwise, if the namespaces imported by the?using_namespace_directives of the namespace declaration contain more than one type having name?I?and?x?type parameters, then the?namespace_or_type_name?is ambiguous and an error occurs.

    • If?x?is zero and the declaration of?T?includes a type parameter with name?I, then the?namespace_or_type_name?refers to that type parameter.

    • Otherwise, if the?namespace_or_type_name?appears within the body of the type declaration, and?T?or any of its base types contain a nested accessible type having name?I?and?x?type parameters, then the?namespace_or_type_name?refers to that type constructed with the given type arguments. If there is more than one such type, the type declared within the more derived type is selected.

    • If?x?is zero and the?namespace_or_type_name?appears within a generic method declaration (§14.6) but outside the?attributes?of its?method-header,?and if that declaration includes a type parameter (§14.2.3) with name?I, then the?namespace_or_type_name?refers to that type parameter.

    • Otherwise, if the?namespace_or_type_name?appears within a type declaration, then for each instance type?T?(§14.3.2), starting with the instance type of that type declaration and continuing with the instance type of each enclosing class or struct declaration (if any):

      Note: Non-type members (constants, fields, methods, properties, indexers, operators, instance constructors, finalizers, and static constructors) and type members with a different number of type parameters are ignored when determining the meaning of the?namespace_or_type_name.?end note

    • Otherwise, for each namespace?N, starting with the namespace in which the?namespace_or_type_name?occurs, continuing with each enclosing namespace (if any), and ending with the global namespace, the following steps are evaluated until an entity is located:

    • Otherwise, the?namespace_or_type_name?is undefined and a compile-time error occurs.

    • Otherwise, the?namespace_or_type_name?is of the form?N.I?or of the form?N.I<A?, ..., A?>.?N?is first resolved as a?namespace_or_type_name. If the resolution of?N?is not successful, a compile-time error occurs. Otherwise,?N.I?or?N.I<A?, ..., A?>?is resolved as follows:

      • If?x?is zero and?N?refers to a namespace and?N?contains a nested namespace with name?I, then the?namespace_or_type_name?refers to that nested namespace.

      • Otherwise, if?N?refers to a namespace and?N?contains an accessible type having name?I?and?x?type parameters, then the?namespace_or_type_name?refers to that type constructed with the given type arguments.

      • Otherwise, if?N?refers to a (possibly constructed) class or struct type and?N?or any of its base classes contain a nested accessible type having name?I?and?x?type parameters, then the?namespace_or_type_name?refers to that type constructed with the given type arguments. If there is more than one such type, the type declared within the more derived type is selected.

        Note: If the meaning of?N.I?is being determined as part of resolving the base class specification of?N?then the direct base class of?N?is considered to be object (§14.2.4.2).?end note

      • Otherwise,?N.I?is an invalid?namespace_or_type_name, and a compile-time error occurs.


    C# Spec燒腦章節(jié)Namespace and type names的評論 (共 條)

    分享到微博請遵守國家法律
    句容市| 荣成市| 常山县| 昂仁县| 唐海县| 中牟县| 安化县| 花莲市| 鲁山县| 新乡县| 仁怀市| 弋阳县| 湟源县| 湖口县| 大方县| 泰宁县| 八宿县| 德化县| 宁陵县| 岑巩县| 青冈县| 五莲县| 湘西| 昌吉市| 民勤县| 剑河县| 吴旗县| 水城县| 隆子县| 吕梁市| 金阳县| 南陵县| 石屏县| 中江县| 五寨县| 保康县| 清镇市| 台中县| 依兰县| 兰考县| 大石桥市|