【问题标题】:What is a function that has a ~ before the function declaration? [duplicate]什么是函数声明前有 ~ 的函数? [复制]
【发布时间】:2023-03-25 08:43:01
【问题描述】:

所以我碰到了这个:

Public Stam {
       public Stam() {Console.WriteLine("Stam");}

       ~Stam(){Console.WriteLine("Stam")}
       }

~到底是什么?当我调用 Stam 类时会发生什么。

【问题讨论】:

  • 终结者。而且你不叫类。
  • @ta.speot.is 当我的意思是调用类时,我的意思是指类或让初始化做某事
  • 这是一个终结器/析构函数。如果您的代码中出现这种情况,则几乎可以肯定您做错了什么。
  • 这是您要找的吗? link
  • 请查看其中一位从事 C# 开发工作的人的回答:stackoverflow.com/a/4899622/2920343。特别注意前两个词(“我什么时候应该使用析构函数?”):“几乎从不”,然后是一堆警告。

标签: c#


【解决方案1】:

通常destructor 函数/方法是这样声明的。

你的电话好像是finalizer

【讨论】:

    【解决方案2】:

    在 C# 中称为 Destructor,相当于 C++ 的析构函数是 IDisposableDispose() 方法,通常在 using 块中使用。

    System.IDisposable from MSDN

    你所说的析构函数更广为人知的是Finalizer.

    【讨论】:

      【解决方案3】:

      它是类的析构函数。它在类的实例被删除时自动调用,您可以使用它来删除对象等。

      【讨论】:

        【解决方案4】:

        在这种情况下,~ operator 用于表示类析构函数,destructors 作为清理过程的一部分被自动调用。

        不过,~ 也可用于按位补码运算。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-10
          • 2011-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-10
          相关资源
          最近更新 更多