Tag: 编码风格

财产命名惯例

哪一个更好或更清楚? public int FrozenRegionWidth { get; set; } 要么… public int WidthOfFrozenRegion { get; set; }

如何在没有接口的情况下模拟多重inheritance?

如何在不使用接口的情况下模拟C#中的多重inheritance。 我相信,接口能力不适用于此任务。 我正在寻找更多’设计模式’导向的方式。

Resharper是否正确?

我刚刚安装了Reshaper 4.5,它提出了以下建议: return this.GetRuleViolations().Count() == 0; — REMOVE this. new string[] { this.ID.ToString(), this.Registration } — REMOVE string, MAKE ANONYMOUS TYPE int i = Method.GetNumber(); — REPLACE int WITH var 我应该这样做吗? 我认为在某些情况下,它会降低代码的可读性,但会提高性能吗? 进行这些更改有什么好处? 谢谢

我应该使用EventArgs还是简单的数据类型?

我正在创建一个有趣和实践的库,我想知道,在举办活动时,如何选择传递自己的EventArgs衍生物或仅仅是数据类型。 例如,在我的库中我有这样的东西: public delegate void LostConnectionEventHandler(string address); public delegate void MessageReceieved(byte[] bytes); 这是什么标准做法? 我应该用MessageEventArgs替换string address和用MessageEventArgs替换byte[] bytes吗? 我知道其中一个工作得很好而且这个问题可能是主观的但我仍然对高级程序员在决定是否包含他们自己的EventArgs或直接传递数据时所经历的思考过程感到好奇。 谢谢!

用于代码对齐的Visual Studio扩展

是否有任何免费扩展来执行代码对齐,例如将 Alignment Assignments与Productivity Power Tools对齐,但要对齐此代码: public int ID; public string Title; public string Text; public decimal Factor; 那样,还是那样的? public int ID; public string Title; public string Text; public decimal Factor;

有没有人改变Visual Studio默认支撑样式? – 有标准吗?

我发现默认的支撑方式在线数上有点浪费,例如…… function foo() { if (…) { … } else { … } } 如果我用JavaScript编写,例如写得像…… function foo() { if (…) { … } else { … } } ……我理解也可能不符合人们的口味。 但问题是你是否关闭VS格式化风格并使用自己的规则? 当很多人在同一个代码库上工作时,业界对此有何看法? 为简单/统一而言,坚持默认是否更好?

在VB.NET中使用Dim foo As Foo有什么问题吗?

在最近的VB.NET项目中,我采用了我习惯在C#中使用的命名约定。 也就是说,经常调用与它引用的类相同的变量,只有不同的情况,例如 Foo foo = new Foo(); // C# Dim foo As New Foo() ‘ VB.NET 我发现这通常是编写代码的最清晰的方法,特别是对于小方法。 这种编码风格显然在C#中运行良好,区分大小写,并且由于Visual Studio提供的语法高亮,很容易看出类名和变量名是不同的。 然而,令我惊讶的是,在VB.NET中,这几乎在100%的时间内也能正常工作。 唯一的问题是变量名称似乎具有多重身份。 即它可以用于调用Foo类的实例方法和共享(静态)方法。 这并没有真正引起任何问题,只是意味着Intellisense会在你点击”后提供包含静态和实例方法的列表。 变量名后面。 我再次惊讶地发现,这实际上并没有导致我的项目出现任何混乱,到目前为止它已经非常成功! 但是,我是唯一一个从事这个特定​​项目的人。 这是一个稍长的例子: Dim collection as Collection = New Collection() For Each bar As Bar in Bar.All() collection.SomeInstanceMethod(bar) Next collection.SomeSharedMethod() *我发现的唯一问题是,有时候’重命名’重构工具会混淆,即重命名一个类时,它会重命名与类同名的变量,在它们的声明行中( Dim foo As… ),但不是对该变量的其他引用,导致编译器问题(duh)。 这些总是很容易纠正。 另一个小麻烦是VB.NET语法高亮显示器不会突出显示类名,而不是变量名,这使得它不如在C#中使用它时那么好。 我仍然发现代码非常易读。 还有其他人试图在团队环境中允许这个吗? 在VB.NET中这个命名约定还有其他潜在的问题吗?

在WPF UserControl上应用样式的问题

我有一个用户控件,我想在其他项目中使用它。 当我直接为其属性设置一些值时没有问题: … 但我无法应用它的风格。 我试过了: … 我哪里错了? -谢谢

将大括号放在与单行“if”语句的语句相同的行上是不是很糟糕?

所以我知道,总是包括if,for等花括号,这是一种好的做法,即使它们是可选的,如果只有一个后面的语句,因为它更容易意外地做类似的事情: if(something == true) DoSomething(); DoSomethingElse(); 如果你没有把括号快速编辑代码。 虽然这样的事情怎么样: if(something == true) { DoSomething(); } 这样你仍然占用更少的线(IMO提高了可读性),但仍然不太可能从上面意外地犯错误? 我问,因为我不相信我以前见过这种风格的if或循环,但我确实看到它用于C#属性中的getter和setter,如: public string Name {get;set;} 不要问什么是最好的,因为这太主观了,而只是这是否被认为是可接受的风格,如果没有,为什么不。

在C#中的方法中定义枚举?

我主要是C ++背景,我正在学习C#。 所以,我需要一些C#习语和风格的帮助。 我试图在C#中编写一个小型文本文件解析方法,其中我需要一个具有三种状态的简单状态变量。 在C ++中,我会为状态变量声明一个这样的enum : enum { stHeader, stBody, stFooter} state = stBody; …然后在我的解析循环中使用它,如下所示: if (state == stHeader && input == “.endheader”) { state = stBody; } 在C#中,我意识到在方法中声明enum是不可能的。 那么,为了清洁风格,我应该做些什么呢? 在方法之外声明这个内部enum ? 使用魔数1,2,3? 为此创建一个单独的类? 请帮我澄清一下我的困惑。