1. ホーム
  2. c#

c#:"System.Object "と "object "の違いについて

2023-09-29 18:42:05

質問内容

C#の場合、(1)と(2)の間に違いはありますか? System.Object を使うのと、単に object よりも、あるいは System.String よりも string などとするのでしょうか?それとも単なるスタイルの問題なのでしょうか?

ある形式が他の形式より好ましいという理由はありますか?

どのように解決するのですか?

string のエイリアスです。 global::System.String . これは単に構文上の糖分です。この二つは はまさに であり、コンパイルされたコードには何の違いもありません。

個人的には、変数名などにはエイリアスを使用しますが、API内の名前などにはCLR型名を使用します。

public int ReadInt32() // Good, language-neutral

public int ReadInt() // Bad, assumes C# meaning of "int"

(戻り値の型は実際には名前ではないことに注意してください - メタデータでは型としてエンコードされているので、そこで混乱することはありません)。

一方が使用可能で他方が使用不可能な場所は (私が知っている限り)

  • nameof エイリアスの使用禁止
  • enum の基底となる型を指定する場合。 のみ を使用することができます。