私は単純なタイプを持っていstruct
ます。int
またはのようなよく知られた単純な型に暗黙的に変換可能byte
です。
私struct
にはプロパティがないので、使い方は次のようになります
int i = 1;
MyStruct a = i;
また
MyStruct a = MyStruct.Empty;
int i = (i)a;
コードは機能しています。struct
ただし、シリアル化に問題があります。同じようにシリアライズしたいと思いSystem.Int32
ますGuid
。
ToString()
デバッガーでも問題なく動作しています。すべて問題ありません。構造体は次のようにマークされていますSerializable
新しい編集:
シリアル化の問題は、シリアル化してstruct
いないことです。シリアル化されたテキスト (JSON など) では、空の文字列です。返された値と同じ値を見たいときToString()
私が使用しているシリアル化のために:
[DataContract]
public class MyClass
{
[DataMember]
public Guid Id { get; set;}
[DataMember]
public MyStruct A { get; set;}
}
var myclass = new MyClass() { Id = Guid.NewGuid(); A = MyStruct.MyNewStruct() }
string data = JsonConvert.SerializeObject(myClass);
Guid はシリアライズ中です - Id: "...guid..." , A は違います - A: ""
値などの構造体にプロパティを追加すると、次のようにシリアル化されます: A: [Value: "myvalue"]
このValue部分は避けたいと思います。