coding-style相关内容
我刚刚安装的 ReSharper的试用版和的第一件事我注意到的是它总是暗示与隐式类型的人,如更换显式类型的局部变量: 公共字符串的someMethod(INT aParam) { INT aNumber的= SomeOtherMethod(aParam); //应改为: VAR aNumber的= SomeOtherMethod(aParam); } 我想显式类
..
我一直在做的策略模式一些阅读,并有一个问题。我已经实现下面一个非常基本的控制台应用程序来解释我问。 我已阅读,有“开关”语句执行该战略格局的时候是红旗。不过,我似乎无法从具有在这个例子中switch语句中脱身。我缺少的东西吗?我能够从铅笔,但我的主要有一个switch语句中,现在删除的逻辑。我明白,我可以很容易地创建一个新的 TriangleDrawer 类,就不必打开铅笔类,这是很好的。不
..
我有一个奇怪的习惯,似乎......根据我的至少同事。我们一直都在一个小项目一起。我写的类的方法是(简化的例子): [序列化()] 公共类Foo { 公共美孚() {} 私人酒吧_bar; 公共酒吧酒吧 { 得到 { 如果(_bar == NULL) = _bar新酒吧(); 返回_bar; } 集合{= _bar价值; } } }
..
有没有使用 object.ReferenceEquals 方法使用的诗句((对象)OBJ1 ==(对象)OBJ2)? 在第一种情况下,将有涉及一个静态方法调用,并且在这两种情况下的一些形式浇铸到一个物体的将参与 即使编译平衡了这些方法,不平等呢?结果 (对象)的obj!= NULL 相比,... !object.ReferenceEquals(OBJ,NULL) 我想,在某些时候,会
..
这个问题来自对我创建了一个对象,运行code分析。分析说,我应该捕获更具体的异常类型的不仅仅是基本的异常。 你只使用捕捉通用的异常,或试图捉住一个特定的异常,并使用多个catch块默认为一个通用的异常发现自己? 一个有问题的code块是如下: 内部静态布尔ClearFlags(字符串的connectionString中GUID ID) { 布尔的returnValue = FALSE
..
我应该封,我知道,即使没有切实的性能或安全问题,或者这只是将多余的内容?不应该被使用作为基类的所有类 解决方案 一个类是可扩展实现该功能,它可以扩展 - 这就像类的任何其他功能的特性,应该像一个来处理,没有从方法不同。所有功能应通过精心被认为以确保它们满足了客户使用该功能的目标。功能需要进行设计,实施,审查了安全问题,调试记录和维护。 所有的这些花费精力和努力,通常需要金钱的支出。谁的钱
..
我想知道什么是对可空的bool做条件检查最干净的和可以理解的语法。 在下面的好或坏的编码风格?有没有一种方法能恩preSS的条件更好/更干净? 布尔? nullableBool = TRUE; 如果(nullableBool ??假){...} 否则{...} 特别是如果(nullableBool ??假)的一部分。我不喜欢如果(x.HasValue&安培;&安培; x.Value)风格.
..
大家说的“强调,不下划线”的争论是纯粹的哲学和用户preference驱动但随着智能影音感有下划线,您可以从您的局部变量区分的成员变量非常方便,从而给你一个具体的受益 有任何相反的观点,以有下划线的所有成员变量这样做的好处? 解决方案 是 - 对一些人来说它降低了可读性。我相信不同的人以不同的方式阅读(有些内部练声曲和别人不一样,例如)。对于一些人(包括我自己)强调中断code“流”当我
..
我得到了你们对C#code写了一个问题: 我有我的collegue长时间的辩论: 他说,通过声明和initilizing所有变量中的功能使code之初的更可读和快速 请给我至少有一个健全的原因,也可能是对的。 1 这不是可读的,如果你有很长的函数,你必须有后intialization范围巨大申报范围,所以这是很容易声明你需要在你需要它的变量,所以你会看到它在你的弗朗。 2 这不是绝对的速
..
我一直在与同事聊天的一天,听说他们的编码标准明确禁止他们使用 VAR 关键字在C#。他们不知道为什么它是如此,我总是发现隐含的声明编码时要非常有用的。我从来没有任何问题,找出什么类型的变量是(你只悬停在VS变量,你会得到的类型的方式)。 有谁知道为什么它会是一个坏主意,使用var关键字在C#? 解决方案
..
我知道在C#中使用空合并运算符的标准方法是设置默认值。 字符串无人= NULL; 字符串有人=“鲍勃Saget” 字符串有人=“”;任何人=? “T先生”; //返回T先生 任何人=人? “T先生”; //返回“鲍勃Saget” 还有什么能 ?? 作?它似乎并不如三元运算符是有用的,除了是更简洁且易于阅读:无人= NULL; 任何人= == NULL? “鲍勃Saget”:没人; //返回鲍
..
我最近创建了这两个(无关)的方法来取代大量的样板code在我的WinForms应用程序。据我所知,他们的工作不错,但我需要就是否有一些问题我可能会丢失。一些安慰/咨询 (从内存中) 静态类SafeInvoker { //工具,以避免锅炉板InvokeRequired code //用法:SafeInvoker.Invoke(myCtrl,()=> myCtrl.Ena
..
有关code以下块: 对于i = 0到listOfStrings.Count - 1 如果myString.Contains(lstOfStrings.Item(Ⅰ))。然后 返回TRUE 万一 下一个 返回False 输出是: 案例1: 的myString:C:\\文件\
..
我经常使用的Request.QueryString [] 变量。 在我的的Page_Load 我经常做这样的事情: INT ID = -1; 如果(的Request.QueryString [“身份证”]!= NULL){ 尝试 { ID = int.Parse(的Request.QueryStri
..
在C#中,有没有使用 System.Object的在code,而不是任何区别只是对象或 System.String ,而不是字符串等等?或者是它只是一个风格问题? 是否有一个原因,一种形式是preferrable其他? 解决方案 字符串是全球:: System.String的别名。它只是语法糖。两者的究竟的互换,而且会在编译code没有区别。 我个人使用的变量名等别名,但我用的CLR类
..
我见过几个提到这个成语的(包括SO ): //故意空用户 公共事件的EventHandler AskQuestion =委托{}; 好处是明显的 - 它避免了引发事件之前,检查空 不过,我很希望了解是否有任何缺点。例如,它是东西是在wides $ P $垫的使用和足够透明的,它不会造成保养头痛?有没有空的情况下用户呼叫的任何接入点preciable性能影响? 解决方案 唯一的缺点是,
..
在C#中,有没有在你状态的条件才能在excecution速度有什么区别? 如果(空!=变量)... 如果(变量!= NULL)... 最近以来,我看到的第一个经常,这引起了我的注意,因为我是用第二个。 如果没有区别,什么是第一位的优势在哪里? 解决方案 这是一个滞留在从C.在C语言中,如果你要么使用一个糟糕的编译器或没有警告调到足够高,这将编译没有任何警告(不愧是合法code): //可
..
让我们说你要输出或CONCAT字符串。下列哪种风格你preFER? VAR P = {新名字=“条例”,姓氏=“盖茨”}; Console.WriteLine(“{0} {1}”,p.FirstName,p.LastName); Console.WriteLine(p.FirstName +“”+ p.LastName); 你宁愿使用格式,或者你只是Concat的字符串?什
..
为什么每个人都告诉我,写code一样,这是一个不好的做法? 如果(富) 酒吧();//要么的for(int i = 0 I<计数;我++) 杆(一); 我最大的省略大括号的说法是,它有时是两倍多行他们。例如,这里是一些code画在C#标签的发光效果。使用(刷BR =新SolidBrush(Color.FromArgb(15 GlowColor))) { 为(中间
..
我很好奇其他人如何使用这个关键字。我倾向于在构造函数中使用它,但我也可以在其他方法使用它在整个类。一些例子: 在一个构造器: 公共小巴(矢量V) { this.dir =新的向量(V); } 在别处公共无效的someMethod() { 向量VEC =新的向量(); 双D =(VEC * VEC) - (this.radius * this.radius); }
..