草庐IT

c# - 确定 IDisposable 是否应该扩展接口(interface)或在实现所述接口(interface)的类上实现

我如何确定是应该使用IDisposable扩展我的接口(interface)之一还是在实现我的接口(interface)的类上实现IDisposable?我有一个不需要处理任何外部资源的接口(interface),除了一个特定的实现。我的选择似乎是:1)在要求所有实现都实现Dispose的接口(interface)上实现IDisposable,即使只是一个空方法。-或-2)仅在具有需要处理的资源的类上实现IDisposable。这将导致“使用”问题,因为我的对象是从工厂创建的,因此所有上游代码都针对接口(interface)工作。由于该接口(interface)未绑定(bind)IDi

c# - 如何使用 PowerShell 使用 C# DLL 中存在的类的新对象

我有一个C#类,例如publicclassMyComputer:PSObject{publicstringUserName{get{returnuserName;}set{userName=value;}}privatestringuserName;publicstringDeviceName{get{returndeviceName;}set{deviceName=value;}}publicstringdeviceName;}派生自PSObject。我正在使用导入模块在powershell中加载具有此代码的DLL。然后我尝试在PowerShell中创建MyComputer类的新对象

c# - C# 的类 Ruby 'unless'?

有没有办法在C#中做类似的事情?即。i++unlessi>5;还有一个例子weatherText="Weatherisgood!"unlessisWeatherBad 最佳答案 您可以使用扩展方法实现类似的目的。例如:publicstaticclassRubyExt{publicstaticvoidUnless(thisActionaction,boolcondition){if(!condition)action.Invoke();}}然后像这样使用它inti=4;newAction(()=>i++).Unless(ii++).U

c# - 为什么我可以在 C# 中实例化一个没有构造函数的类?

C#中的类怎么可能没有定义构造函数?例如我有一个类internalclassTextStyle{internalstringtext="";internalFontfont=newFont("Arial",8);internalColorcolor=Color.Black;}并且在代码中这个类被实例化为TextStyletextParameters=newTextStyle(); 最佳答案 如果您没有为非静态类声明任何构造函数,编译器会为您提供一个公共(public)(或抽象类的protected)无参数构造函数。你的类实际上有一个

c# - 如何在 C# 中创建可以转换为 DateTime 的类?

我如何创建可以转换为DateTime的类。但是当它打包时,我需要上课。例如:objectdate1=newMyDateTime();DateTimedate2=(DateTime)date1;我直接需要这个工作示例。我知道该怎么做,但我的方法无需打包也能奏效。我不确定是否有办法做到这一点。请帮忙。附言。我需要直接将对象转换为DateTime。所以,MyDateTime之前必须打包。Explicit效果很好,但如果您有打包的对象,它就无济于事。而且它必须使用像这样的普通转换来转换(DateTime)(object)MyDateTime 最佳答案

c# - ASP.NET EF 从未映射的类中删除鉴别器列

我有一个我的内容模型:classBaseModel{publicvirtualstringContent{get;set;}//...}要仅显示数据,上面的模型就可以了。但我想添加编辑内容的功能。所以我需要向成员content添加一个属性-但这应该只发生在autor按下编辑按钮时,而不是在内容的常规View中。所以我创建了第二个继承自BaseModel的模型,这样我就可以用我的属性覆盖成员:classEditableBaseModel:BaseModel{[UIHint("MyEditor"),AllowHtml]publicoverridestringContent{get;set;

c# - 如何使 [DebuggerDisplay] 尊重继承的类或至少使用集合?

我有一个继承自List的类.它在所有方面都运行良好并且符合预期,除了一个:当我添加[DebuggerDisplay]时属性。即使查看List也有其作为[DebuggerDisplay("Count={Count}")],如果我将其复制并粘贴到我的上,我将无法直接查看我拥有的所有MagicBeans,而无需在调试时钻入base->private成员。我如何才能两全其美?IE:值列中的自定义值,VisualStudio没有对我隐藏我的魔bean? 最佳答案 您可以使用DebuggerTypeProxy获得您需要的效果属性。您需要创建一个

c# - 应该在引发事件的类内部还是外部声明委托(delegate)?

我见过各种事件处理的例子。这是一个:EventSample.有时我看到委托(delegate)在将引发事件的类外部声明(如上面的链接所示),有时在内部(我认为它应该被声明)。对我来说,在将引发事件的类中声明事件更有意义。原因是该类将声明的事件实际上只是辅助方法等的一些糖衣,它们实际上是在对委托(delegate)进行添加、减去和调用等操作。有什么最佳实践吗?是否有时您想在外部声明委托(delegate),而有时又想在内部声明委托(delegate)?如果是这样,应该如何决定要做什么? 最佳答案 通常,现在您会创建自己的派生自Even

c# - 如何定义一个必须继承的类

如何定义一个必须继承的类?在C#中 最佳答案 您将类标记为abstract(这是VB.NET必须继承的C#模拟)。这将确保它不能被直接实例化。来自链接的MSDN文章:Theabstractmodifierindicatesthatthethingbeingmodifiedhasamissingorincompleteimplementation.Theabstractmodifiercanbeusedwithclasses,methods,properties,indexers,andevents.Usetheabstractmod

c# - 在 C# 或 OOP 中,两个相关的类是否应该相互引用?

我正在使用C#开发类库。我设计了3个主要类来帮助建模我们的数据。它们的设计使得A类包含B类实例的列表,B类包含对C类实例的引用,即:publicclassPolicy{publicListmyTerms;personCustomer;stringPolicyNumber;}publicclassPolicyTerm{publicBillingmyBill;Datetimeeffectivedate;ListtermActivities;publicdoAction(){usevaluefromPolicy,likePolicyNumber;}}publicclassBilling{fl