【问题标题】:What happen when new Instance of an object call?当对象的新实例调用时会发生什么?
【发布时间】:2016-07-19 10:24:21
【问题描述】:

关于类的构造函数,我心中有一个困惑。我如何试图找到这个但没有找到任何与我的困惑相关的答案..

假设我有一堂课

public class mySampleClass
{
    public mySampleClass()
    {
        // This is the constructor method.
    }
    // rest of the class members goes here.
}

其中有很多属性,当我初始化这个类时会发生什么?我的意思是说是否只有构造函数被调用?或者是其他东西?

其余的属性呢?我问这个愚蠢的问题是因为我的 WCF 服务包含许多方法,在我初始化同一个类的每个方法中,如果我在全局范围内创建对象,它会在某个地方崩溃。

我的另一个问题是初始化构造函数的新实例需要多少时间?取决于所有代码?还是构造函数体?

请举例说明。有两个或多个构造函数。

更新:

关于这个问题有一些困惑,我只是简单地分享了一个像WCF服务这样的场景,但是我必须知道整个构造函数初始化时间,它是否依赖于构造函数?或整个对象(包含其他方法属性)。

简单来说

我想知道构造函数在初始化时的行为是否依赖于属性、方法等?

【问题讨论】:

  • 由于混淆始于默认情况下 WCF 的工作方式,我相信其他答案应该足以让您弄清楚幕后发生的事情。
  • 副本明显错了!是的,OP 提到了 WCF,但真的吗?
  • @Carsten 我要回答这个问题,直到我意识到问题在于理解无状态 WCF 服务......
  • 全局变量可能是静态的并且在请求之间共享。有关更多信息,请参阅此问题:stackoverflow.com/questions/14154892/…
  • @MatíasFidemraizer 看到你得到的 cmets ... IMO 这个问题已经说得很清楚了

标签: c# constructor


【解决方案1】:

构造函数只执行一次,它是当您在其他类或方法甚至在您的服务中实例化您的类时。

例如

mySampleClass msc = new mySampleClass();

类中的属性和方法不会受到影响,“除非”您执行msc.PropertyName="somethingelse";msc.MethodName(); 之类的操作。

【讨论】:

    猜你喜欢
    • 2016-11-23
    • 2015-09-16
    • 1970-01-01
    • 2023-03-15
    • 2010-10-12
    • 2011-03-26
    • 1970-01-01
    • 2015-09-06
    • 2016-04-29
    相关资源
    最近更新 更多