无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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的評論 (共 條)

    分享到微博請遵守國家法律
    霍邱县| 张掖市| 内黄县| 恩施市| 乐至县| 漳州市| 禄丰县| 汉沽区| 衡南县| 宜丰县| 富顺县| 兰考县| 普陀区| 唐山市| 玉溪市| 荥阳市| 苍山县| 柳州市| 牡丹江市| 北川| 乐业县| 农安县| 莫力| 巨野县| 柏乡县| 渭南市| 遂平县| 平山县| 洪江市| 三都| 延津县| 怀仁县| 彭州市| 东源县| 青海省| 揭西县| 黑龙江省| 广德县| 静安区| 平江县| 临武县|