草庐IT

抽象代数

全部标签

c# - 抽象类构造器

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whycan’tIcreateanabstractconstructoronanabstractC#class?抽象类的Constructor可以标记为'abstract'吗?

c# - 从抽象类引用继承的 EntitySet 的 dapper PropInfo Setter 为 null

我正在尝试用一些简洁的查询替换令人讨厌的LINQ2SQL命中以提高性能。这样做时,我必须将一堆不同的对象编织在一起,以创建保存ASN信息所需的所有信息所需的大对象。我目前遇到的问题是抽象类Orders,该类由两个单独的类AutionOrder和MerchantOrder使用鉴别器属性实现。由于我无法使用dapper创建抽象类对象,因此我改用其中一个公共(public)类。但是,当它构建对象时,它在GetSettableProps内部失败,它找到了正确的DeclaringType但是GetProperty方法在它返回null时正在寻找internal或EntitySet的属性。我尝试使用

c# - 我可以用这种方式为所有派生的单例定义一个抽象类吗?

这是我的抽象类,每次我想制作一个Singleton时都必须派生它:publicabstractclassSingletonwhereT:Singleton{privatestaticreadonlyLazy_instance=newLazy(()=>{varconstructor=typeof(T).GetConstructor(BindingFlags.NonPublic|BindingFlags.Instance,null,newType[0],null);return(T)constructor.Invoke(null);});publicstaticTInstance{get{

c# - C#中的重用抽象原则

在我们的C#MVC应用程序中,我们有很多接口(interface)与实现它们的对象一对一映射。即:基本上,对于创建的每个对象,都执行了“提取接口(interface)”操作。Moq使用这些接口(interface)为我们的单元测试生成模拟对象。但那是唯一一次重新使用接口(interface)。我们系统中没有具体对象实现多个接口(interface)。谁能告诉我这是否会在以后造成问题?如果是这样,它们会是什么?我在想,我们的应用程序有很多重复,例如在这两个接口(interface)中(编辑:在我们的服务层中)唯一不同的是方法名称和它们采用的参数类型,但是从语义上讲,他们对发送消息的存储库

c# - 抽象类列表

我有抽象类:publicabstractclassMyClass{publicabstractstringnazwa{get;}}还有两个继承自MyClass的类:publicclassMyClass1:MyClass{publicoverridestringnazwa{get{return"aaa";}}}publicclassMyClass2:MyClass{publicoverridestringnazwa{get{return"bbb";}}}在另一个类中我创建了列表:ListmyList;现在我要创作myList=newList;编译器显示错误:Cannotimplicitl

c# - 没有任何抽象方法的抽象类

我很惊讶地知道C#中的抽象类也可以没有抽象方法。abstractclassAbstractDemo{publicvoidshow(){Console.WriteLine("InShowMethod");}}classMainDemo:AbstractDemo{publicstaticvoidMain(){Console.WriteLine("InMainMethod");}}有什么解释吗? 最佳答案 有时你不想给一个类实例化的可能性,但你需要这个类作为其他类的基类。选择抽象类而不是接口(interface)的原因是您可以提供一些基本

c# - 抽象类的对象和抽象类的对象列表有什么区别?

我们不能创建抽象类的对象,但我们可以创建一个列表或它们的数组。有什么区别? 最佳答案 列表或数组只是一组指针的占位符,您还没有创建任何实例。当您说创建对象时——您的意思是创建一个实例——您不能使用抽象类来做到这一点。但是您可以创建指向它们的列表或数组(并且是空的)——然后您可以将指针移动到派生类/对象的“真实”实例 关于c#-抽象类的对象和抽象类的对象列表有什么区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c# - 接口(interface)还是抽象类?

对于我的新宠物项目,我有一个设计问题,这个问题已经确定了,但我也想就此提出一些其他意见。我有两个类(简化):classMyObject{stringname{get;set;}enumrelation{get;set;}intvalue{get;set;}}classMyObjectGroup{stringname{get;set;}enumrelation{get;set;}intvalue{get;set;}Listmyobjects{get;set;}}稍后在项目中MyObjectGroup和MyObject应该被同等使用。为此,我可以采用两种方式:创建接口(interface)

c# - 为什么C#中同时存在抽象类和接口(interface)?

如果我们可以通过将类中的所有成员都抽象化来实现接口(interface)特性,为什么C#中还要同时存在抽象类和接口(interface)。是不是因为:接口(interface)存在多重继承拥有接口(interface)是有意义的,因为对象的CAN-DO特性应该放在接口(interface)而不是基础抽象类中。请澄清 最佳答案 好吧,一个抽象类可以指定一些实现,但通常不是全部。(话虽如此,完全有可能提供一个没有抽象成员的抽象类,但有大量具有“无操作”实现的虚拟成员)。接口(interface)提供不实现,仅提供契约(Contract)

c# - 在通用抽象类中实现强制转换运算符

我试图偷懒并在抽象基类中而不是在每个派生的具体类中实现转换运算符。我已经设法施放了一种方式,但无法施放另一种方式。我认为这可能是不可能的,但想在放弃之前选择集体SO的想法:publicinterfaceIValueType{TValue{get;set;}}publicabstractclassValueType:IValueType{publicabstractTValue{get;set;}publicstaticexplicitoperatorT(ValueTypevt){if(vt==null)returndefault(T);returnvt.Value;}publicsta