草庐IT

abstract-class

全部标签

c# - 部分类(class)的目的是什么?

我读了aboutpartialclasses并且,例如,我理解在VisualStudio创建Windows窗体时使用它们的原因,但不排除whenworkingonlargeprojects,spreadingaclassoverseparatefilesenablesmultipleprogrammerstoworkonitatthesametime.后来我看了thisexample我注意到大多数类都被声明为部分类。为什么? 最佳答案 部分类很有用的一个很好的例子是当类由工具(如VS)自动生成并且您希望能够扩展该类的功能并且在工具需

c# - 在 OOP 中覆盖方法与分配方法委托(delegate)/事件

这是一个有点奇怪的oop问题。我想创建一组对象(在设计时已知),每个对象都有与之关联的某些功能。我可以通过为我的对象提供可以包含“代表”的属性来做到这一点:publicclassStateTransition{FuncCondition{get;set;}ActionActionToTake{get;set;}FuncVerifyActionWorked{get;set;}}StateTransitionfoo=newStateTransition{Condition=()=>{//...}//etc};或者,我可以使用一个抽象类并为我想创建的每个对象实现它:publicabstrac

c# - 更改继承类中的抽象方法签名

假设我有一个名为Engine的类作为抽象基类。我还有派生自它的ElectrictEngine和FuelEngine类。我想创建一个为引擎加油的方法。我是否应该将其作为基类级别的抽象方法并以通用方式命名,例如fillUpEnergy?问题是,如果我有一个电动引擎,该方法采用的参数数量与燃料引擎需要传递的参数数量不同。因此,方法的签名不同。此外,是否有任何聪明的方法可以将通用方法用于两个引擎,但将其包装在更具体的名称中?例如:对于燃料发动机,“加油”,对于电动发动机,“充电电池”?同时对用户隐藏泛型方法? 最佳答案 在这种情况下,我会为

c# - ASP.NET MVC 2 - 绑定(bind)到抽象模型

如果我有以下强类型View:"%>其中Location是一个抽象类。我有以下Controller,它通过POST:接受强类型模型[HttpPost]publicActionResultIndex(Locationmodel)我收到一个运行时错误,指出“无法创建抽象类这当然是有道理的。但是-我不确定最好的解决方案是什么。我有很多具体类型(大约8个),这是一个只能编辑抽象类属性的View。我尝试做的是为所有不同的具体类型创建重载,并以通用方法执行我的逻辑。[HttpPost]publicActionResultIndex(Citymodel){UpdateLocationModel(mod

c# - 哪个是 delphi "class of "(类的类型)的 C# 声明?

在delphi中,我可以像这样声明一个类型的类typeTFooClass=classofTFoo;TFoo=classend;此声明的C#等效项是什么? 最佳答案 您在C#中可以获得的最接近的是Type类型,它包含有关类型的元数据。publicclassA{}publicstaticintMain(string[]args){Typeb=typeof(A);}这不是完全相同的。在Delphi中,“其他类型的类型”本身就是可以分配给变量的类型。在C#中,“其他类型的类型”是一个System.Type实例,可以分配给System.Typ

c# - 在抽象父类(super class)的子类中强制使用属性

如何强制子类实现其父类(superclass)的某些属性?原因是我想使用属性来获取有关该类的一般信息,例如“显示名称”、“说明”或“功能”。所以我想我可以在父类(superclass)中实现它们并强制子类实现这些属性。是否有类似于方法的抽象属性?[abstractDeclareMe]publicabstractclassInheritMe{publicabstractvoidDeclareMe();} 最佳答案 由于你的类迟早要运行,你可以在你的基类中添加检查机制来验证你的子类中某些属性的存在。这里有一些示例代码。classProg

c# - 序列化和恢复未知类

基础项目包含一个抽象基类Foo。在单独的客户端项目中,有实现该基类的类。我想通过在基类上调用一些方法来序列化和恢复具体类的实例://Inthebaseproject:publicabstractclassFoo{abstractvoidSave(stringpath);abstractFooLoad(stringpath);}可以假设在反序列化时,所有需要的类都存在。如果可能的话,序列化应该用XML完成。使基类实现IXmlSerializable是可能的。我有点卡在这里。如果我对事情的理解是正确的,那么这只能通过向每个实现类的基类添加[XmlInclude(typeof(Unknown

c# - 是什么导致 Xamarin Forms 构建出现 "unrecognized selector sent to class"错误?

首先介绍一下我的系统:Mac操作系统版本10.13.6Xcode版本10VisualStudioformac7.6.6我对Xamarin表单完全陌生,想尝试和学习。我想要做的只是创建一个新的xamarin表单解决方案并开始构建。以下是我经历的步骤:创建新项目从多平台的应用程序子菜单中选择C#中的“空白表单应用程序”目标平台包括Andriod和iOs;共享代码.NETStandard不要为版本控制或应用中心测试而烦恼(未勾选)这里是错误:https://github.com/benfranklin79/shared/blob/master/20180919/error.txt这是解决方案

c# - 无法确定类型 "Class"的 JSON 对象类型

我在尝试将类类型的对象添加到JArray时遇到以下错误。CouldnotdetermineJSONobjecttypefortype"Class"这是我的代码:privatedynamic_JArray=nullprivateJArrayNArray(Repositoryrepository){_JArray=newJArray();string[]amounts=repository.Amounts.Split('|');for(inti=0;i我是这样调用它的:_JArray=NArray(repository);Console.WriteLine(JsonConvert.Seri

c# - 扑克牌 : Should they be enum or struct or class?

我正在设计许多(希望是数千)玩家可以同时玩某些纸牌游戏的游戏网站。这副牌是标准的52张牌。每张牌都有花色和等级。牌将一直被洗牌、发牌、挑选、排序、打出。我的问题是,Card应该是枚举、结构还是类?对于枚举:设每张卡片为一个字节0..51。所以一张卡会占用很少的空间。您可以将一只watch示为8个字节的位集。您可以在需要时非常快速地计算给定卡片的花色和点数:即花色(n)=n/13。这将非常有效。如果需要为Cards写方法,就通过扩展方法来写。对于结构:不,这就像编写机器代码。卡是一种简单的结构,保存的数据很少,不可变,很小。它没有太多行为,因此将其设为结构并将其视为被动数据结构。当需要时