Tag: 构造函数

在C#中构造对象的首选方法是什么? 构造函数参数或属性?

我想知道,在C#中构造新对象的首选方法是什么? 参加一个人类: public class Person { private string name; private int age; //Omitted.. } 我应该创建它来使用: New Person(“name”, 24); 要么 New Person() { Name = “name”, Age = 24 }; 这只是一个品味的问题还是有充分的理由使用一个而不是另一个? 我可以想象一个人应该只使用构造函数中的必需字段和可选字段而不是构造函数参数,而是使用属性。 我是对的吗?

在C#中初始化静态变量内联或静态构造函数的差异

我想知道初始化内联静态成员有什么区别,如: class Foo { private static Bar bar_ = new Bar(); } 或者在静态构造函数中初始化它,如: class Foo { static Foo() { bar_ = new Bar(); } private static Bar bar_; }

表单构造函数与Form_Load

什么是表单构造函数和form_Load方法之间的区别? 什么是你把物品放在一个与另一个相比的过程?

构造函数中“this”关键字的function是什么?

我刚刚看到来自MSDN的示例代码并且来自: namespace IListSourceCS { public class Employee : BusinessObjectBase { private string _id; private string _name; private Decimal parkingId; public Employee() : this(string.Empty, 0) {} // <<— WHAT IS THIS??? public Employee(string name) : this(name, 0) {}

我何时以及为什么要使用ClassName:this(null)?

我无法理解简单裸露之间的区别 Public ClassName() {} 和 Public ClassName() : this(null) {} 我知道只有当我有+1重载的ctor时我才能使用它,但是我无法理解以这种方式defining the parameterless constructor的优点。

输入初始化exception

我创建了imageHolder类: public class ImageHolder : Image { private String imagePath; public ImageHolder(String path):base(path) { this.imagePath = path; } public String imgPathProperty { get { return imagePath; } set { imagePath = value; } } } 我创建类的实例并初始化它,如下所示: private ImageHolder originalImageHolder; originalImageHolder = new ImageHolder(openFileDialog.FileName); 在运行时我得到这个例外: ‘Emgu.CV.CvInvoke’的类型初始值设定项引发了exception。 这是Solution Explorer窗口: 任何想法为什么我得到这个例外,我该如何解决它? 先感谢您。

BinaryFormatter.Deserialize如何创建新对象?

当BinaryFormatter将流反序列化为对象时,它似乎在不调用构造函数的情况下创建新对象。 它是怎么做到的? 为什么? .NET中还有什么可以做到的吗? 这是一个演示: [Serializable] public class Car { public static int constructionCount = 0; public Car() { constructionCount++; } } public class Test { public static void Main(string[] args) { // Construct a car Car car1 = new Car(); // Serialize and then deserialize to create a second, identical car MemoryStream stream = […]

C#何时使用“此”关键字

可能重复: 你什么时候使用“this”关键字? 您好,我知道This关键字用于引用类的实例,但是,假设我有一个名为Life的类,它定义了两个字段,person( 他们的名字 )和他们的伙伴( 他们的名字 ): class Life { //Fields private string _person; private string _partner; //Properties public string Person { get { return _person; } set { _person = value; } } public string Partner { get { return _partner; } set { _partner = value; } } //Constructor 1 public Life() { […]

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

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

为什么在构造函数中抛出exception导致空引用?

为什么在构造函数中抛出exception导致空引用? 例如,如果我们运行下面的代码,则teacher的值为null,而st.teacher则不是(创建了Teacher对象)。 为什么? using System; namespace ConsoleApplication1 { class Program { static void Main( string[] args ) { Test(); } private static void Test() { Teacher teacher = null; Student st = new Student(); try { teacher = new Teacher( “”, st ); } catch ( Exception e ) { Console.WriteLine( e.Message ); } Console.WriteLine( […]