相关疑难解决方法(0)

哪个是C#中的有效对象?

我有一个基类Base和一个Derived1类,它派生自Base类,另一个派生类Derived2派生自derived1.

下面我提到了几个对象创建的例子(后面是类的多级继承).有人可以帮助我理解那些无法创建对象的情况以及为什么在C#中无法实现对象?

Base b1 = new Base() //Possible 
Base b1 = new derived1() // Possible 
Derived1 d1 = new Base() // Not Possible 
Derived1 d1 = new Derived1() // Possible 
Derived2 d2 = new Derived1() // ---- 
Derived1 d1 = new Derived2() // ---- 
Derived2 d2 = new Derived2() // Possible
Derived2 d2 = new Base() // ---- 
Base b1 = new Derived2() // ---- 
Run Code Online (Sandbox Code Playgroud)

c#

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

在构造函数中使用:base()

我目前正在尝试构造一个派生自不同对象的对象,但在调用基础构造函数之前,我想进行一些参数验证.

public FuelMotorCycle(string owner) : base(owner)
{
    argumentValidation(owner);
}
Run Code Online (Sandbox Code Playgroud)

现在我明白了最初首先调用基础构造函数,有没有办法只能在argumentValidation方法之后调用它?

c# inheritance

2
推荐指数
2
解决办法
183
查看次数

什么叫第一个 - 对象初始化器或Construtor?

我想知道什么是第一次调用让我说我有这个代码

public class MyObject
{
    public MyObject()
    {
        MyNumber = 6;
    }
    public int MyNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我称之为

var o = new MyObject {MyNumber = 8 };
Run Code Online (Sandbox Code Playgroud)

MyNumber是什么- 6或8?

让我们说我也设置了这个

public int MyNumber { get; set; } = 7;
Run Code Online (Sandbox Code Playgroud)

订单怎么样?什么礼物?

c# c#-6.0

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

自动属性初始化与构造函数初始化哪个优先?

假设我正在这样做......

public class Customer
{
    public Customer()
    {
        customerID = Guid.NewGuid();
    }

    public Guid customerID { get; set; } = Guid.NewGuid();
}
Run Code Online (Sandbox Code Playgroud)

...因为,我知道当我的开发团队转向C#6.0时会发生这种情况.哪个优先/被使用(构造函数NewGuid()或属性NewGuid())以及为什么?什么时候我们应该使用一个与另一个作​​为最佳实践?

c# c#-6.0

0
推荐指数
3
解决办法
473
查看次数

我对继承感到困惑

条件: 如果一个类(ep:A)继承其他类(ep:B).

class B
{
    public int id;
    public string Name;
}

class A:B
{
    public string className;
}    
Run Code Online (Sandbox Code Playgroud)

当我创建A的实例时,然后通过A的实例调用id

 static void Main(string[] args)
 {
      A a = new A();
      Console.WriteLine(a.id);
 }
Run Code Online (Sandbox Code Playgroud)

问题: 当我调用Main时,CLR将检查所有Main的引用类型并将这些类型加载到AppDomain中.**

现在,我只引用A类型 - 将CLR加载B?**我认为B类型将被加载到AppDomain中 - 但为什么呢?

那么,关于动态内存问题?CLR会为A类型提供多少内存?

内存将包含B的字段?如果按照我们的预期,哪个ctor会初始化来自B的这些文件?B的ctor?但值得注意的是,ctor不能继承. 那么,我们如何称呼B的ctor?基地(关键词)?基地如何获得B的ctor?

我想寻找IL代码的答案: 在此输入图像描述

B :: id让我困惑....我没有B的实例,我可以调用B :: id吗?谁知道这些问题的原因,请向我解释!非常非常!

c#

0
推荐指数
1
解决办法
209
查看次数

类中的静态和普通构造函数

假设我们在类中有一个静态构造函数,一个普通的构造函数和一个静态方法.

Main()我们的代码为:

Classname.staticmethod();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在执行静态方法之前,哪个构造函数被称为1st?: - 静态构造函数或普通构造函数?

.net c#

-4
推荐指数
1
解决办法
1440
查看次数

标签 统计

c# ×6

c#-6.0 ×2

.net ×1

inheritance ×1