相关疑难解决方法(0)

C#中的基础构造函数 - 首先被调用?

首先调用哪个 - 基础构造函数或"其他东西"?

public class MyExceptionClass : Exception
{
    public MyExceptionClass(string message, string extrainfo) : base(message)
    {
        //other stuff here
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net

118
推荐指数
7
解决办法
6万
查看次数

构造函数链接顺序

如果使用以下语法链接构造函数调用:

public frmConfirm(): this(1)
Run Code Online (Sandbox Code Playgroud)

何时重载的构造函数被调用?此外,有人可以确认,如果类是一个表单,在两个构造函数中调用InitializeComponent()会产生问题吗?

c#

37
推荐指数
3
解决办法
1万
查看次数

C#:如果一个类有两个构造函数,这些构造函数分享一些代码的最佳方法是什么?

VS2005中的C#:如果一个类有两个构造函数,那么这些构造函数分享一些代码的最佳方法是什么?

例如.我怎么能避免在以下两个构造函数中使用x = 5y = 10行:

public class MyObject {

int x;
int y;
int z;

public MyObject() {
    x = 5;
    y = 10;
}

public MyObject(int setZ) {
    x = 5;
    y = 10;
    z = setZ;
}
Run Code Online (Sandbox Code Playgroud)

c# constructor

34
推荐指数
3
解决办法
4万
查看次数

为继承的只读字段分配值?

所以我有一个有很多孩子的基类.此基类定义一些具有默认值的只读属性和变量.这些可能会有所不同,具体取决于孩子.

Readonly属性/字段允许您更改构造函数内部变量的值以及定义,但不能更改其他地方.如果我尝试在子类的构造函数中更改继承的只读变量的值,我会得到一个'readonly变量只能在构造函数中赋值'错误.为什么这样,如果没有反射,我该如何解决这个问题呢?

我的意图:允许用户通过脚本进行扩展,他们只能更改某些字段一次.

c# inheritance constructor readonly

25
推荐指数
3
解决办法
1万
查看次数

C#base()构造函数顺序

可能重复:
C#构造函数执行顺序

class Foo
{
    public int abc;
    Foo()
    {
       abc = 3;
    }

}

class Bar : Foo
{
    Bar() : base()
    {
       abc = 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,当创建Bar的对象时,BarObject.abc的值是多少?基础构造函数是第一个调用,还是Bar()运行,/ then/base()构造函数?

c# constructor base

20
推荐指数
1
解决办法
3万
查看次数

调用构造函数的顺序c#中的继承情况

我只是在C#中读取继承,其中我遇到了构造函数,并且编写了构造函数按派生顺序执行.它是什么意思?将首先调用该基类构造函数或派生类.

.net c# c#-4.0

11
推荐指数
1
解决办法
1万
查看次数

可以在构造函数中引用"this"吗?

在C#中,我使用的常见模式是使用表单对象填充较低计算类的详细信息.

MyForm的构造函数是:

MyForm()
{
   _MyFormCalcs = new MyFormCalcs(this);
}
Run Code Online (Sandbox Code Playgroud)

但是我今天遇到了一个错误,这让我觉得当我的构造函数没有完成时,它会创建一个新的MyForm实例来传递给MyData.因此它调用构造函数两次.我发现MyFormCalcs中的静态列表被填充两次并且第二次失败,因为密钥已经存在于列表中.

我可以在构造函数中使用它来引用此实例吗?它在低级类中包含什么 - 是否运行了构造函数.

将表格传递给下层阶级的更好方法是什么?

.net c# constructor this winforms

6
推荐指数
1
解决办法
1393
查看次数

构造函数和字段初始化执行顺序

public class RegisterViewModel{
  public RegisterViewModel()
  {
      MaxDepartmentLevel = db.Settings.Find(1).MaxDepartmentLevel;
  }

  private ApplicationDbContext db = new ApplicationDbContext();
  public int MaxDepartmentLevel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这安全吗?能否保证db会在行之前初始化

MaxDepartmentLevel = db.Settings.Find(1).MaxDepartmentLevel;跑步?

换句话说,具有字段初始化和构造函数的类的执行顺序是什么?

c#

6
推荐指数
1
解决办法
6507
查看次数

为什么以相反的顺序调用构造函数?

在继承中为什么基类构造函数首先得到调用为什么不是派生的?

.net c# c#-4.0

5
推荐指数
1
解决办法
410
查看次数

为什么在构造函数之前调用类的成员方法

通常,构造函数是在实例化时在类中执行的第一件事.

但是在下面的例子中,首先执行类的成员方法然后执行构造函数.

为什么会这样?

代码场景:

namespace AbsPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            SavingsCustomer sc = new SavingsCustomer();
            CorporateCustomer cc = new CorporateCustomer();
        }
    }

    public abstract class Customer
    {
        protected Customer()
        {
            Console.WriteLine("Constructor of Abstract Customer");
            Print();

        }

        protected abstract void Print();
    }

    public class SavingsCustomer : Customer
    {
        public SavingsCustomer()
        {
            Console.WriteLine("Constructor  of SavingsCustomer");
        }


        protected override void Print()
        {
            Console.WriteLine("Print() Method of SavingsCustomer");
        }
    }

    public class CorporateCustomer : Customer
    {
        public CorporateCustomer()
        {
            Console.WriteLine("Constructor …
Run Code Online (Sandbox Code Playgroud)

c# oop inheritance abstract-class

5
推荐指数
1
解决办法
837
查看次数

标签 统计

c# ×10

.net ×4

constructor ×4

c#-4.0 ×2

inheritance ×2

abstract-class ×1

asp.net ×1

base ×1

oop ×1

readonly ×1

this ×1

winforms ×1