Tag: oop

在getter中创建对象是不是很糟糕?

让我们在getter中创建一个像这样的对象: public class Class1 { public string Id { get; set; } public string Oz { get; set; } public string Poznamka { get; set; } public Object object { get { // maybe some more code return new Object { Id = Id, poznamla = Poznamka, Oz = OZ }; } } } 或者我应该创建一个将创建并返回对象的方法?

C#中的默认类可访问性

默认是一个类: 私人的 ? 内部? 密封 ?

循环引用防止对象图的序列化

我有一个涉及杂草和杂草家庭的简单数据模型。 WeedFamily Weed (WeedFamily和Weed有一对多的关系) 我正在尝试完成我的第一个ApiController,以便我可以轻松地将我的数据检索为AngularJS应用程序的JSON。 当我在我的应用程序中访问/WeedAPI/ URL时,出现以下错误。 我很确定问题是我在Weed和WeedFamily之间有循环引用。 我应该如何更改我的数据模型,以便JSON序列化能够在保持Weed – WeedFamily关系的双向质量的同时WeedFamily ? (即我仍然希望能够构建如下表达式: WeedData.GetFamilies()[“mustard”].Weeds.Count 和 WeedData.GetWeeds()[3].Family.Weeds ) 错误: An error has occurred. The ‘ObjectContent`1’ type failed to serialize the response body for content type ‘application/xml; charset=utf-8’. System.InvalidOperationException An error has occurred. Object graph for type ‘WeedCards.Models.WeedFamily’ contains cycles and cannot be serialized if reference tracking […]

抽象类和静态类之间有什么区别?

两者都不可实现。 有什么区别,在什么情况下你可能会使用其中一种?

什么是界面鸭打字?

我听到了接口鸭打字这个词,但根本不明白它是什么? 所以我读了一篇关于这个的维基,他们说: 在使用面向对象编程语言的计算机编程中,duck typing是一种键入方式,其中对象的方法和属性确定有效语义,而不是从特定类或显式接口的实现inheritance。 概念的名称是指鸭子测试。 但仍然无法理解它是什么。 所以我看到了他们的程序,但他们使用dynamic关键字来调用所有类的quack()和feather()函数。 我会请求大家请简单解释什么是Interface Duck Typing以及如何在C#v2.0中实现,因为没有dynamic关键字。 using System; namespace DuckTyping { public class Duck { public void Quack() { Console.WriteLine(“Quaaaaaack!”); } public void Feathers() { Console.WriteLine(“The duck has white and gray feathers.”); } } public class Person { public void Quack() { Console.WriteLine(“The person imitates a duck.”); } public void Feathers() […]

是否可以在C#中覆盖构造函数?

是否可以覆盖派生类中的基类的构造函数? 如果是这样,它是如何实现的,以及在什么用例中这是实用的? 如果没有,为什么不呢?

OO设计 – 您是否在内部使用公共属性或私有字段?

我在C#2.0工作,但这适用于大多数面向对象的语言。 当我创建具有包装私有字段的公共属性的类时,我会在内部是否应该使用属性或字段之间来回切换。 当然C#3.0使自动属性更容易,但它仍然可以应用。 有关系吗? public class Person { private string _name = “”; public string Name { get { return _name; } set { _name = value; } } public Person(string name) { _name = name; //should I use the property or field here? } }

在数据库中存储Dictionary 或KeyValuePair

我想看看其他人在处理List 或Dictionary 等类型时遇到了什么,并反过来存储和检索这些数据? 这是一个示例场景:用户将创建自己的“模板”,其中这些模板本质上是Dictionary的集合,例如对于user1,值为(1,Account),(2,Bank),(3,Code),( 4,Savings),对于user2,值(不相关)可以是(1,Name),(2,Grade),(3,Class)等。 这些模板/列表的长度可能不同,但它们始终具有索引和值。 此外,每个列表/模板将只有一个用户链接到它。 您在数据库方面选择了哪些类型? 我应该注意的痛点和/或建议?

为什么C#不支持多重inheritance

可能重复: C#应该包含多重inheritance吗? 我的一位朋友问了我一个问题,即为什么C#不支持多重inheritance

为什么这个演员不可能?

interface IFolderOrItem where TFolderOrItem : FolderOrItem {} abstract class FolderOrItem {} class Folder : FolderOrItem {} abstract class Item : FolderOrItem {} class Document : Item {} 现在我想这样做: class Something { IFolderItemOrItem SelectedItem { get; set; } void SomeMagicMethod() { this.SelectedItem = (IFolderOrItem)GetMagicDocument(); // bad bad bad … ?? } IFolderOrItem GetMagicDocument() { return someMagicDocument; […]