2


0

C ++のこれらの危険なイディオム/使用法はC#で回避できますか?

このハーブサッターの記事「http://www.gotw.ca/publications/advice97.htm [あなたが知っていることを書いて、あなたが書いていることを知っている]」で、彼はC ++の危険なイディオムについて警告しています。

T& T::operator=( const T& other )
{
  if( this != &other )
  {
    this->~T();
    new (this) T(other);
  }
    return *this;
}

C#はこの種の危険なケースを解決しますか? 危険性の低いイディオムを持つという点で、C#はC ++よりも優れたプログラミング言語ですか?

1 Answer


1


C#では operator =`を再定義できないため、このparticularさ(私はイディオムとは呼びません)はできません。 これはC#を改善するものではありません。= `を再定義するのが理にかなっている場合は、回避策が必要です。