私は単純なタイプを持ってい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部分は避けたいと思います。