私が書いたオブジェクトの完全修飾名がおかしなことに戻ってきていることに気づきました。ToString()メソッドをステップ実行しているときに、文字列を連結する場合、文字オブジェクトが一貫してそのプロセスから除外されていることに気付きました。
これが何が起こっているかのステップスルーです
前
後
どこChar seperator = ':';
これが私のtostring関数のコードです:
public String ToString(Representaion rep)
{
String toReturn = "kuid";
Char separator = ':';
switch (rep)
{
case Representaion.Colons:
break;
case Representaion.Underscores:
separator = '_';
break;
case Representaion.UCROnly:
toReturn = userID + ":" + contentID;
toReturn += revision == 0 ? "" : ":" + revision;
return toReturn;
}
toReturn += version == 0 ? "" : version.ToString();
toReturn += separator + userID + separator + contentID;
toReturn += revision == 0 ? "" : separator + revision.ToString();
return toReturn;
}
あなたが持っているところ
private byte version;
private int userID;
private int contentID;
private byte revision;
そして、1つのケースは次のようになります。
すでに、ローカルパネルを見ると、VSは私が思っているものとは異なる文字列を取得しているようです。
別のToString関数を入れて、パラメーターなしで呼び出しを処理します(これは、Representation.Colonsを使用してパラメーター化された関数を呼び出すことによって行われます)。
public override string ToString()
{
return this.ToString(KUID.Representaion.Colons);
}
なぜ私が得るべきだと思うものが得られないのか誰かに教えてもらえますか?(期待される結果:kuid2:72938:40175:2)