小编Bra*_*rad的帖子

为什么默认情况下不使用C#"使用别名"?

请考虑以下代码.

using System.ComponentModel.DataAnnotations;

namespace Foo
{
    public class Bar
    {
        [Required, MaxLength(250)]
        public virtual string Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

除非你有一个花哨的IDE(在幕后进行各种查找和静态分析),否则"必需"和"MaxLength"实际来自哪里都很模糊.特别是当可能导入多个名称空间时,具有相似的含义.

作为C#的相对新手,我发现自己总是很难弄清楚某些事情的来源.特别是在查看StackOverflow等地方的其他代码片段时.

using DataAnnotations = System.ComponentModel.DataAnnotations;

namespace Foo
{
    public class Bar
    {
        [DataAnnotations.Required, DataAnnotations.MaxLength(250)]
        public virtual string Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在很明显"必需"和"MaxLength"的来源.您可以采取另一个步骤,并执行以下操作:

using Required = System.ComponentModel.DataAnnotations.RequiredAttribute;
using MaxLength = System.ComponentModel.DataAnnotations.MaxLengthAttribute;

namespace Foo
{
    public class Bar
    {
        [Required, MaxLength(250)]
        public virtual string Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这与PHP和Js ES6的工作方式非常相似.

我很好奇为什么这不是C#的默认值?为什么我和其他所有C#开发人员一起考虑别名的不良做法?是否存在一些潜在的性能原因?

.net c# ide visual-studio

6
推荐指数
1
解决办法
384
查看次数

标签 统计

.net ×1

c# ×1

ide ×1

visual-studio ×1