Tag: abstract class

C#中的类初始化器是否可行?

在C#中,您可以使用对象初始值设定项在创建时初始化对象的字段, 而无需使用构造函数 。 现在我想知道是否存在类的等价物,这意味着在定义子类时可以“初始化”类的属性而不实际使用覆盖语法,而只是声明已知属性的值是什么。 例: public abstract class Car { public abstract string Name { get; } } // usual approach public class Mustang : Car { public overwrite string Name { get { return “Ford Mustang”; } } } // my idea of avoiding boilerplate code public class Mustang : Car { Name = […]

C#中的抽象类和接口类有什么不同?

C#中的抽象类和接口类有什么不同?

MVC局部视图中的多态ViewModel集合和渲染

我在MVC应用程序中遇到ViewModel的多态集合问题。 我通过Web服务调用收到了这个,我需要迭代它们并根据对象类型给它们自己的局部视图。 public abstract class ProvinceViewModel { public string Code { get; set; } } public sealed class OntarioViewModel : ProvinceViewModel { } public sealed class QuebecViewModel : ProvinceViewModel {} 在我看来,我试图迭代它们并分配局部视图。 我必须在这里进行大量的类型转换才能使其正常工作。 如果我尝试将其移动到控制器操作并传入抽象类型,我将得到一个错误,我们无法创建抽象类的实例。 ICollection ProvinceList; // collection receive via service @for (int i = 0, c = ProvinceList.Count; i < c; i++) { var currentProvince […]

我可以用这种方式为所有派生的单身人士定义一个抽象类吗?

这是我的抽象类,每次我想创建一个Singleton时都必须派生它: public abstract class Singleton where T : Singleton { private static readonly Lazy _instance = new Lazy(() => { var constructor = typeof(T).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[0], null); return (T)constructor.Invoke(null); }); public static T Instance { get { return _instance.Value; } } public Singleton() { } } 所以,每次我需要遵循Singleton设计模式时,我可以这样做: sealed class Server : Singleton […]

MustInherit和抽象类之间的区别

有人可以向我解释抽象类和标记为MustInherit的类之间的区别吗? 两者都可以实现共享和实例构造函数和逻辑。 两者都可以/必须inheritance。 那么为什么要使用一个而不是另一个呢?

c#抽象类

我必须创建一个假的DMV程序来计算商用和私人车辆的年费。 这两个类将是抽象的,它们将从名为所有车辆的类中进行多态化。 我的教练只希望一个对象创建整个程序(在main中),但由于我的前三层类是抽象的。 我不能用它们创建一个物体,即vehicle = new vehicles(); 所以我的问题是如何创建一个对象,因为它们是抽象的? 如果您有任何问题可以随意提问,我可能没有解释清楚……

有没有办法强制派生类实现抽象类或嵌套在基类中的接口?

我有这个抽象类: public abstract class Task { public string ID {get; set;} public string Name {get; set;} public abstract class Options{}; public abstract void Execute(); } 我有其他类扩展这个类: public class Copy : Task { public override void Execute() { Console.Write (“running”); } } 我希望每个派生类都实现自己的Options类,以便它们可以拥有自己的参数。 因此, Search类必须使用它需要的属性来实现它自己的Options类,例如“ includesubfolders ”,“ casesensitive ”等。 同时Move任务可以实现它自己:“ 覆盖 ”等。 在抽象类中使属性和方法抽象强制派生类来实现它们自己但在同一个类中定义嵌套抽象类或接口不会强制它的派生类实现它们自己的类。 我可以在每个派生类中单独定义每个属性但由于我想在稍后的Execute方法中查询Task.Options中的属性而失败。 我也尝试过动态对象,但这带来了其他所有问题。

为什么我不能在子类中访问受保护的变量?

我有一个带有受保护变量的抽象类 abstract class Beverage { protected string description; } 我无法从子类访问它。 Intellisense不会显示它可访问。 为什么会这样? class Espresso:Beverage { //this.description ?? }

抽象类和接口有什么区别?

可能重复: 接口与抽象类(通用OO) 我可以实例化一个Abstract类吗? 如果是这样,为什么我不会将所有非密封类抽象化? 如果我无法实例化它,那么界面有什么区别? 抽象类可以具有“基础”类function吗? 接口和抽象类之间的区别是什么?

AutoMapper:将接口映射到抽象类 – 这可能吗?

我正在使用AutoMapper在我的应用程序的不同层之间映射对象。 一方面我有一个如下所示的界面: public interface MyRepo { IEnumerable GetItems(param); } IRootObject看起来像这样: public interface IRootObject { int Id { get; set; } DateTime? Date { get; set; } } public interface IFirstSubObject : IRootObject { string MyFirstProp { get; set; } } public interface ISecondSubObject : IRootObject { string MySecondProp { get; set; } } 所以GetItems()调用实际上只返回一个IxxxSubObjectItems数组。 另一方面,结构如下所示: […]