2017-08-30 2 views
0

単純なクラスをデシリアライズ私は、このクラスにC#のカスタム直列と

class MyClass{ 
    int x; 
    byte[] arr; 
} 

を持っている私は、テキストファイルではなく、カスタム途中でそれをシリアル化します。

私が書きたい値はxです。x値はxです。

とし、arr(すべての値に+1など)と移動タブを操作します。

、その後、Xの値「の値が再び」は、私はtxtファイルに次のようにシリアライズすることができますどのようにタブ

で「素敵な一日持っている」

とどのように私はtxtファイルから逆シリアル化することができますMyClassと同じように?例えば

:X = 4、ARR = {1,2,3} txtファイルは

the value of X is: 4 
    arr is: 2,3,4 
    the value again is:5 have a nice day 

私はこれをどのように行うことができますしてくださいだろうか? 私のプログラムではGetを使うので、私はそのvarのGetプロパティを特別にしたくありません。

答えて

1

シリアライズはあなたがやろうとしているものとは異なっているが、あなたは特別な形式の出力をしたい場合は、いくつかは、toString()メソッドのオーバーライドを行うだろうが、あなただけの別の方法のようなものを作成することができます...

public string textOutput() 
    { 
     var sb = new StringBuilder(); 
     sb.AppendFormat("the value of X is: {0}\r\n arr is: ", x); 
     for (var i = 0; i < arr.Length; i++) 
      sb.AppendFormat("{0}{1}", i == 0 ? "" : ", ", arr[i]); 

     // don't know where your 5 value is coming from though... but place-holdered it 
     sb.AppendFormat("\r\n  the value again is: {0} have a nice day", 5); 

     return sb.ToString(); 
    } 

とし、必要に応じて出力を書きます。または、これを独自のゲッタープロパティとして作成することもできます。

関連する問題