草庐IT

abstract-class

全部标签

c# - 如何使用最小起订量测试抽象类中的具体方法?

过去,当我想模拟一个抽象类时,我只是在扩展抽象类的代码中创建一个模拟类,然后在我的单元测试中使用该类...publicabstractclassMyConverter:IValueConverter{publicabstractObjectConvert(...);publicvirtualObjectConvertBack(...){...}}privatesealedclassMockedConverter:MyConverter{...}[TestMethod]publicvoidTestMethod1(){varmock=newMockedConverter();varexpe

c# - 将 set 访问器添加到类中的属性,该类派生自只有一个 get 访问器的抽象类

我有一个抽象类,AbsClass实现一个接口(interface),IClass.IClass有几个属性只有Get访问器。AbsClass实现的属性IClass作为要在派生自的类中定义的抽象属性AbsClass.所以所有派生自的类AbsClass还需要满足IClass通过与Get访问器具有相同的属性。但是,在某些情况下,我希望能够向来自的属性添加set访问器。IClass.然而,如果我尝试覆盖中的抽象属性AbsClass使用setaccessor我收到此错误ConcClassA.Bottom.Set无法覆盖,因为AbsClass.Bottom没有可覆盖的set访问器见ConcClass

c# - 抽象类中 'public'构造函数的相关性

抽象类中的“公共(public)”构造函数是否有任何相关性?我想不出任何可能的方法来使用它,在那种情况下它不应该被编译器视为错误(C#,不确定其他语言是否允许这样做)。示例代码:internalabstractclassVehicle{publicVehicle(){}}C#编译器允许编译此代码,但我无法从外部世界调用此构造函数。它只能从派生类中调用。所以它不应该只允许“protected”和“私有(private)”修饰符。请评论。 最佳答案 没有理由为抽象类使用公共(public)构造函数。我认为编译器没有提示的原因很简单,他们

c# - MustInherit 和抽象类的区别

有人可以向我解释抽象类和标记为MustInherit的类之​​间的区别吗?两者都可以实现共享和实例构造函数和逻辑。两者都可以/必须继承。那么为什么要使用一个而不是另一个,有什么区别? 最佳答案 MustInherit之于VB.NET就像abstract之于C# 关于c#-MustInherit和抽象类的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5189405/

c# - 在 C# 中的基本构造函数之前执行派生构造函数

我的问题是,我想将一个对象传递给派生类,但必须在基类构造函数之前完成,因为基类会立即调用派生类的Start()使用该对象的方法。这是基类的摘录(为方便起见,从BarcodeScanner重命名)。publicabstractclassMyBase{publicMyBase(){if(Initialize())this.Start();}publicabstractboolInitialize();publicabstractvoidStart();}这是我正在创建的派生类。classMyDerived:MyBase{privatestringsampleObject;publicMyD

c# - 错误 "A template containing a class feature must end with a class feature"

我在VisualStudio2010下开发C#T4预处理模板时遇到以下编译错误:Atemplatecontainingaclassfeaturemustendwithaclassfeature 最佳答案 错误是由最后一个#>后的不可见空格引起的同样重要的是要记住,不可见的空格可能会导致其他难以理解的编译错误。如果您想查看更大的图片,请查看以下链接:AgoodexampleAgoodexplanaton,通过RyanPugh既然您已经意识到处理文本模板时不可见空间的危害有多大,我的建议是:让它们可见。如果您不知道如何操作,请参阅Jee

c# - 单击选择性粘贴时如何在 visual studio 2012 中显示 "paste Json class"?

我正在尝试使用vs2012中过去的特殊功能,以便为我的Json数据生成c#类。我从Nuget从NewtonSoft下载了Json.New,然后添加了一个新的.cs类,将我的json数据复制到剪贴板,但是当我转到“编辑”->“选择性粘贴”->我只能看到:“将XML粘贴为类”仅粘贴JsonasClasses功能未显示。有什么建议么?提前谢谢你这就是我得到的,请注意我已经安装了Newtonsoft.Json:(来源:indevcogroup.com) 最佳答案 我创建了一个新项目,安装了Newtonsoft.Json并添加了一个类。如果您

c# - C# 中的 "Abstract"接口(interface)

这是一个学术问题。背后可以说是一个X-Y问题,稍后我可能会单独发布。但我实际上对这里的学术问题特别感兴趣。我经常发现我有一组接口(interface),它们都具有共同的属性。我想定义一个基本接口(interface)来通用化这些接口(interface),部分原因是为了避免重复,部分原因是我可以传递一个对象并在不知道确切类型的情况下使用通用方法。也许我有IFooRepository,IBarRepository等,我可以声明IRepository.或者我有一个IHappyBot,ISadBot,IConfusedBot,所有这些都有IBot共同点。值得注意的是,没有任何类会直接实现这些

c# - 如何制作类(class)的只读版本?

我有一个包含各种公共(public)属性的类,我允许用户通过属性网格对其进行编辑。为了持久化,此类还通过DataContractSerializer序列化/反序列化为XML文件。有时我希望用户能够保存(序列化)他们对类实例所做的更改。然而在其他时候,我不想让用户保存他们的更改,而是应该将属性网格中的所有属性视为只读。我不想让用户做出他们以后永远无法保存的更改。类似于MSWord将如何允许用户打开其他人当前打开的文档,但仅作为只读。我的类有一个bool属性,用于确定类是否应该是只读的,但是是否可以使用此属性以某种方式在运行时动态地向类属性添加只读属性?如果不是,替代解决方案是什么?我应该

javascript - typescript 错误 : A 'super' call must be the first statement in the constructor when a class contains initialized properties

我的项目中有以下typescript错误..让我分享一下一个示例,以便您了解正在处理的内容。moduleCoreWeb{exportclassControllerimplementsIController{public$q;public$rootScope;public$scope:ng.IScope;public$state:ng.ui.IStateService;public$translate:ng.translate.ITranslateService;publicappEvents;publiccommonValidationsService;publicdefaultPag