【问题标题】:Call a method from constructor with "constructor rights"从具有“构造函数权限”的构造函数调用方法
【发布时间】:2017-10-02 07:29:41
【问题描述】:

我有一个会员。该成员仅由构造函数分配,为什么我认为可以将其设为只读。 这个类有几个构造函数。

有没有办法分配这个成员一次,创建一个单点故障。

首先,我认为它可以使用内联方法。 我找到的唯一方法是:

    [MethodImpl(MethodImplOptions.AggressiveInlining)]

但它不起作用。

或者是否可以赋予方法“构造函数权限”或者不可能做到这一点?

【问题讨论】:

  • readonly 就是这样做的。
  • 使用构造函数链接?

标签: c# constructor inline


【解决方案1】:

我认为你最好的选择是重载你的构造函数,然后链接它们

readonly int myReadonly;

public test(int a, int b) 
    :this (a)
{
    myReadonly = b;
}

private test(int a) 
{
    //other work
}

【讨论】:

  • 愚蠢的问题:正确吗,当我调用 test(int a, int b) 时,它会在调用 (int a) 之前执行?
  • @KenanTabinas 这个问题并不愚蠢。并且在 SO 上被问过好几次,例如here
  • @Fildor 这不是正确的答案。我问了一个“这是真的问题吗”。此类问题的答案是布尔值。在此示例中,正确答案为“否”。不过还是谢谢。
  • @KenanTabinas 实际上,这根本不是您问题的答案。我反对它是一个愚蠢的说法,并引用了一个重复。
猜你喜欢
  • 2013-08-10
  • 2016-05-31
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2018-08-20
相关资源
最近更新 更多