C#类实例声明

时间:2017-09-27 08:25:43

标签: c# class instance class-variables

我是C#的新手。我在网上搜索没有成功 在找到我的问题的答案时,也许它只是一个术语/语法 我错过了。

我正在学习别人写的一些程序。该计划包括 项目中包含的不同文件中的一些类。

在主程序文件中,而不是我知道声明新的方式 这个类的实例使用了这个方法:

 namespace Technology_A3000_A4_A42107
{
    public partial class FormTechnology : Form
    {
        ...
        private AST_NET _device;
        private ClassTechnology _technology;
        private ClassGain _gain;
        ....
    }


           public FormTechnology()
        {
            ...
            _device = new AST_NET();
            _technology = new ClassTechnology(_device);
            _gain = new ClassGain();
            ....
        }

    ....    

这到底做了什么?这相当于写作 下面的行,或者由于某些外部文件而需要它 或者其他一些属性?

private AST_NET _device = new AST_NET(); 

先谢谢,如果有的话,对不起 不是一个合适的问题。 Amitai

2 个答案:

答案 0 :(得分:0)

  public FormTechnology()
        {
            ...
            _device = new AST_NET();
            _technology = new ClassTechnology(_device);
            _gain = new ClassGain();
            ....
        }
        
    

此FormTechnology是FormTechnology类的构造函数。当您创建FormTechnology的实例时,它将调用构造函数。因此,它将创建以下类的实例

            _device = new AST_NET();
            _technology = new ClassTechnology(_device);
            _gain = new ClassGain();

答案 1 :(得分:0)

c#编译器(如Java)创建类似

的输出
new Form().ctor()

ctor()是你正在定义的构造函数

public Form(){
    // Some code
}

基本上,在创建类的新实例之后,custructor是一个名为right 的函数。你不能阻止这一点。 所以我认为(不完全确定)但基于类的初始化是在构造函数之前完成的。所以像这样的价值

public int value = 10;

在构造函数之前分配。如果我错了,请纠正我。

然而这是一个糟糕的设计,因为你没有条件。

  • 在构造函数中,您可以动态设置值。
  • 在字段初始化(如上所示)中,必须在编译时知道这些值。

希望这有帮助吗?