参考资料: asp.net 主页仓库git
最通用的指导原则是咱们使用全部的VS默认设置的代码格式,除了咱们把系统命名空间放在其余命名空间以前(这在VS中是默认的,可是在VS的更新版本中已经改变了)。github
_camelCase
this.
{
)要另起一行public (int, string) GetData(string filter) => (Data.Status, Data.GetWithFilter(filter ?? throw new ArgumentNullException(nameof(filter))));
只要编译器容许,那么尽量的使用var声明变量,好比下面的代码:api
var fruit = "Lychee"; var fruits = new List<Fruit>(); var flavor = fruit.GetFlavor(); string fruit = null; // can't use "var" because the type isn't known (though you could do (string)null, don't!) const string expectedName = "name"; // can't use "var" with const
反面例子:asp.net
string fruit = "Lychee"; List<Fruit> fruits = new List<Fruit>(); FruitFlavor flavor = fruit.GetFlavor();
公共名称空间,类型名称,成员名称和参数名称必须使用完整的单词或通用/标准缩写。异步
示例:ide
public void AddReference(AssemblyReference reference); public EcmaScriptObject SomeObject { get; }
反例:ui
public void AddRef(AssemblyReference ref); public EcmaScriptObject SomeObj { get; }
例如:this
public string TrimString(string s) { return string.IsNullOrEmpty(s) ? null : s.Trim(); } var intTypeName = nameof(Int32); // can't use C# type keywords with nameof
反例:spa
public String TrimString(String s) { return String.IsNullOrEmpty(s) ? null : s.Trim(); }
默认状况下,全部异步方法都必须具备Async
后缀.net
通常的规则是:若是一个普通的静态方法就足够了,避免使用扩展方法。
扩展方法一般对建立可链式调用的方法很是有用,例如,在构建复杂对象或建立查询时。
内部扩展方法是容许的,但要记住先前的指导方针:拍拍胸脯问问本身,扩展方法是否真的是最合适的模式。
扩展方法类的名称空间一般应该是表示扩展方法功能的名称空间,而不是目标类型的名称空间,一个常见的例外是中间件扩展方法的命名空间一般老是与IAppBuilder
的命名空间相同。
扩展方法容器(也称为“sponsor type”)的类名一般应遵循<Feature>Extensions
,<Target><Feature>Extensions
或<Feature> <Target>Extensions
的模式。例如:
namespace Food { class Fruit { ... } } namespace Fruit.Eating { class FruitExtensions { public static void Eat(this Fruit fruit); } OR class FruitEatingExtensions { public static void Eat(this Fruit fruit); } OR class EatingFruitExtensions { public static void Eat(this Fruit fruit); } }
在编写接口的扩展方法时,sponsor type名称不能以I
开头。
编写代码的人将写入Doc comments,仅限公共API。非公开类型不须要Doc comments。
注:public意味着下游能够调用,因此它包含受保护的API。可是,一些公共API可能仍然是“仅供内部使用”,但因为技术缘由须要公开。咱们仍然会针对这些API提供文档,可是会根据状况进行记录。
常量的定义使用帕斯卡命名法,避免使用全大写命名
例如:
public const string HashKey="ie832js834u9f9wq3h";
错误:
public const string HASH_KEY="ie832js834u9f9wq3h";
例如:
var api ="... public void FindApi(...
错误:
var API ="... public void FindAPI(...
例如常见的WTO是缩写,可是建议算做单词,写为 Wto、wto而不是WTO