草庐IT

c# - 使用 C# 的 get set 属性被认为是好的做法吗?

我的问题很简单,使用C#的getset属性被认为是好的,甚至比编写getter和setter方法更好吗?当您使用这些属性时,您不必将您的类数据成员声明为public吗?我问这个是因为我的教授说数据成员应该永远被声明为公开的,因为这被认为是不好的做法。这个....classGetSetExample{publicintsomeInt{get;set;}}与这个...classNonGetSetExample{privateintsomeInt;}编辑:谢谢大家!您的所有回答都对我有所帮助,我适本地对您的回答投了赞成票。 最佳答案 这个

c# - 在其自己的构造函数中将 "this"作为参数传递是一种不好的做法吗?

我有这个BdlTabItem它接收类型为DockableUserControl的参数并想知道使用uc.TabItem=this在两者之间创建循环引用是否是一种不好的做法和newBdlDockableWindow(this)在构造函数完成之前。我知道这种行为对于非托管native代码(C++)来说非常糟糕。因此,即使我没有收到任何警告或错误,我也会在这里询问我是否应该这样做。publicBdlTabItem(BdlTabControlparent,DockableUserControluc,stringtitle){TabControlParent=parent;UserControl=

c# - 是否有可能在代码中丢失过度继承?

我目前正在开发一个由其他人完成的asp.net站点,它的功能复杂得可笑……嗯,我是这么认为的!几乎每个类都继承自另一个类,然后是另一个类,然后是另一个类,依此类推......你必须平均达到8/10级才能获得基类,有时甚至更多!这些类内部还有其他类,它们遵循与Uber继承相同的模式。这让我多次迷失在代码中,结果天知道在visualstudio上打开了多少个标签页。这是好的/正常的做法还是不好的做法?我觉得这是一种不好的做法,因为过度使用继承导致代码变得不可扩展,如此简单的事情变得过于复杂......但我可能是错的:)谢谢! 最佳答案

c# - 捕捉 System.Exception 总是不好的做法吗?

请考虑以下代码,它抛出三种不同的异常(即System.Configuration.ConfigurationErrorsException、System.FormatException和System.OverflowException):intSomeInt=Convert.ToInt32(ConfigurationManager.AppSettings["SomeIntValue"]);异常是不同的,所以在实践中我应该有三个不同的catchblock来处理每个特定的异常。但是,在这种特殊情况下,所有异常的处理方式都相同:将日志写入事件查看器,并显示一条通知配置错误的消息......在

c# - 在 C# 中嵌套 2 个 try catch 语句是不好的做法吗?

下面的代码是不好的做法吗?try//TryOverallOperation{try//Trysection1ofoperation{}catch(exceptionex){//handleexceptioncode//throwtheexception}catch(exceptionex){//sendsoapexceptionbacktoSOAPclient.}我知道,从程序审查的角度来看,其他开发人员看到2次尝试直接嵌套时可能想知道为什么,但这完全是禁忌,还是现在已被接受?谢谢大家,我同意你们关于重构的所有意见,将为子功能创建一个单独的方法,该方法变得非常长。我对所有选择它的人印象

c# - 在 WCF 服务的方法中使用输出参数是不好的做法吗?

我正在寻找超出通常的“输出参数令人困惑并表明该方法正在做不止一件事”式参数的原因,以及更多关于WCF服务中输出参数特别糟糕的地方。在我现在工作的地方,我们在WCF服务中有一条禁止使用它们的规则,我正在努力找出原因! 最佳答案 就个人而言,我在特定的地方使用out参数(例如名为TryParse()的方法)。所以,我有一些你提到的偏见,我只在特定的、有限的地方使用它。此外,您不能假设.Net应用程序将在另一端使用它。因为WCF提供了一个可用作SOAP或RESTWeb服务(以及其他通信类型)的接口(interface),所以我不能保证WC

c# - 在 ASP.NET 中异步填充数据集或数据表的最佳做法是什么?

鉴于以下代码,我有几个关于最佳实践的问题:stringconnectionString=@"Server=(local)\sqlexpress;Database=master;IntegratedSecurity=true;";using(SqlConnectionconnection=newSqlConnection(connectionString)){using(SqlDataAdapterdataAdapter=newSqlDataAdapter("select*frominformation_schema.columns",connection)){awaitconnecti

c# - 在显式构造函数之外初始化字段是不好的做法吗

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Initializeclassfieldsinconstructororatdeclaration?我们正在争论编码实践。这里的例子有点太简单了,但真正的交易有几个构造函数。为了初始化简单值(例如,将日期设置为最小值),我已将代码从构造函数中移出并移入字段定义中。publicclassConstructorExample{string_string="John";}publicclassConstructorExample2{string_string;publicConstructorExample2(){

c# - 使用 "base"是不好的做法,即使它可能有利于可读性?

我知道这是一个主观问题,但我一直对编码风格的最佳实践感到好奇。ReSharper4.5在实现类中的基方法调用之前就关键字“base”发出警告,即base.DoCommonBaseBehaviorThing();虽然我很欣赏“少即是好”的心态,但我也花了很多时间调试/维护高度链接的应用程序,并且觉得仅通过查看就知道成员调用是对基础对象的可能会有所帮助在它。当然,更改ReSharper的规则很简单,但你们怎么看?调用基成员时应该使用“base”吗? 最佳答案 唯一应该使用base.MethodCall();的情况是子类中有一个重写的同名

c# - 使用 Single 作为 Assert 是一种不好的做法吗?

我正在测试一种操作集合的方法。给定一组参数,它应该只包含一个与条件匹配的元素。编辑:该集合可能还有其他几个不符合条件的元素。我正在使用Single测试该行为,效果很好,因为如果根本没有匹配项或多个匹配项,它将通过抛出异常来使测试失败。但是没有实际的断言,它以某种方式违反了arrange、act、assert。所以我想知道这是否是一种不好的做法,是否有更好的方法来做到这一点。以下伪代码演示我的问题:[TestMethod]publicvoidTestMethod(){Listlist=MethodToTest(param1,param2);list.Single(s=>s.Matches