Tag: oop

使用条件运算符时没有隐式转换

我有以下课程: abstract class AClass { } class Foo : AClass { } class Bar : AClass { } 当我试图使用它们时: AClass myInstance; myInstance = true ? new Foo() : new Bar(); 此代码将无法编译,因为“无法确定条件表达式的类型,因为’CSharpTest.Class1.Foo’和’CSharpTest.Class1.Bar’之间没有隐式转换” 但是以下样本编译好了: if (true) { myInstance = new Foo(); } else { myInstance = new Bar(); } 这也没问题: myInstance = true ? (AClass) new Foo() […]

返回共享方法的两种不同类型的可能对象之一

我有2个class: public class Articles { private string name; public Articles(string name) { this.name = name; } public void Output() { Console.WriteLine(“The class is: ” + this.GetType()); Console.WriteLine(“The name is: ” + name); } } 和 public class Questionnaire { private string name; public Questionnaire(string name) { this.name = name; } public void Output() { Console.WriteLine(“The […]

为什么我们可以在课堂外宣布代表? 是不是反对OOP概念?

根据oops fundamentels,一切都必须在课堂上。 那么为什么我们允许在课外创建委托?

C#:将基类转换为子类

我有一个类,NetworkClient作为基类: using System.IO; using System.Net.Sockets; using System.Threading.Tasks; namespace Network { using System; using System.Collections.Generic; using System.Linq; using System.Text; public class NetworkClient { public NetworkClient() { tcpClient = new TcpClient(); } public NetworkClient(TcpClient client) { tcpClient = client; } public virtual bool IsConnected { get; private set; } private StreamWriter writer { get; set; } private […]

公共变量与具有访问器的私有变量

有没有人见过人们这样做: private string _name; public string Name{ get{ return _name; } set{ _name = value;}} 我理解使用访问器,如果你要对它的设置方式进行某种控制,或者在有get时对其执行某种function。 但是如果你只是要这样做,为什么不把变量公之于众? 我错过了什么吗?

使用有效示例隐藏在c#中的方法。 为什么在框架中实现? 什么是真实世界的优势?

任何人都可以用一个有效的例子解释隐藏在C#中的方法的实际用法吗? 如果使用派生类中的new关键字定义方法,则无法覆盖该方法。 然后它与创建一个具有不同名称的新方法(除了在基类中提到的方法之外)相同。 有没有具体的理由使用new关键字?

在C#中使用接口有什么好处?

几年前我被迫进入一个工作的软件项目,并被迫快速学习C#。 我的编程背景很弱(经典ASP)。 这些年来我学到了很多东西,但由于我学习C#的强制性,我还有很多基本概念。 具体来说,一个界面。 我理解基础知识,但在编写应用程序时,我很难找到实际使用的应用程序。 为什么要为他们的应用程序编写接口? 谢谢凯文

inheritance和多态之间有什么区别?

你能给我一个简单的inheritance和多态的例子,那么它可以完全清楚和易懂吗? 使用C#会让它更清晰,因为我已经学会了它。 PS:导师,我们用的书是用母语,(阿拉伯语) 抱歉,如果这个问题看起来如此简单,对你们来说甚至是愚蠢的,但这些概念被认为很难; 如果你不完全理解它们,那么你就失败了。

字段初始化

以下两种字段初始化方式之间是否存在差异? 什么时候使用哪一个? 第一种方式 public class Class1 { private SomeClass someclass; public Class1() { someclass = new SomeClass(some arg); } } 第二种方式 public class Class1 { private SomeClass someclass = new SomeClass(some arg); } 第二个例子中的字段可以是只读的。

为什么抽象类和接口都存在于C#中?

如果我们可以通过将类中的所有成员都作为抽象来实现接口function,那么为什么抽象类和接口都存在于C#中。 是因为: 接口存在多重inheritance 有接口是有意义的,因为对象的CAN-DOfunction应放在接口而不是基本抽象类中。 请澄清