c#使用指令深度

Sha*_*Wet 8 c#

我正在尝试理解c#using指令......为什么这样做......

using System;
using System.ComponentModel.DataAnnotations;
namespace BusinessRuleDemo
{
    class MyBusinessClass
    {
        [Required]
        public string SomeRequiredProperty { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不是吗?

using System;
using System.ComponentModel;
namespace BusinessRuleDemo
{
    class MyBusinessClass
    {
        [DataAnnotations.Required]
        public string SomeRequiredProperty { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个导致编译错误"无法找到类型或命名空间DataAnnotations.您是否缺少使用指令或程序集引用?

And*_*lov 7

使用using指令可以使用您指定的命名空间中的类名作为其参数.由于DataAnnotations不是类,而是命名空间,因此在第二种情况下无法访问它.您应该使用完全符合条件的类名NS1.NS2.Class1,或者使用NS1.NS2开始编程; 然后使用Class1.