0

.NET が、文字列から定義済みの型への変換、および定義済みの型から文字列への暗黙的または明示的な変換を提供しないのはなぜですか?

例:

public class MyClass
{
  public int Id;

  public MyClass()
  {
  }
}

できます:

var myClass = new MyClass() {Id=1};
string myClassString = myClass.ToString();

なぜできないのですか?:

var myClassConverted = (MyClass) myClassString ;

それに対応できるシリアル化パターンはありますか?

4

4 に答える 4

1

ToString()「明示的なキャスト」と実際に比較することはできません。両者はやはり違います。

もっともらしい比較は、このようにする必要があります。「MyClass to string」をキャストしようとしているはずですが、失敗します。

MyClass` へのキャストもMyClass`MyClassへのキャストも許可されていません。*[1]stringstring

var myClass = new MyClass() {Id=1};
string myClassString = (string)myClass;//Note this also will fails since no conversion beween  `MyClass` to `string`

ToStringメソッドを理想的に比較する場合、FromString残念ながらメソッドと比較する必要があります。

質問に戻る

var myClassConverted = (MyClass)myClassString;

なぜできないのですか?:

stringとの間に暗黙的または明示的な変換がないためMyClassです。

[1]それを機能させるには、 implicitまたはexplicit演算子を使用できます。

于 2013-11-14T11:13:57.843 に答える