私は、次の生産しているのC#に変換VB.Netで書かれたレガシー・コードの一部コピーしたCまで:それは投げている非NULL可能型変換の問題vb.netを変換できません#
///<summary>
///Test whether SSAC should be serialized
///</summary>
public virtual bool ShouldSerializeSSAC()
{
if (_shouldSerializeSSAC)
{
return true;
}
return (_sSAC != (SSAC_Type)null);
}
それがnullでない型であるため変換できないことを示すエラー。次のようにSSACのコードは次のとおりです。VB.Netで
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.81.0"), System.SerializableAttribute()]
public enum SSAC_Type
{
///<remarks/>
A,
///<remarks/>
B,
///<remarks/>
C,
///<remarks/>
D,
///<remarks/>
E,
///<remarks/>
F,
///<remarks/>
G,
///<remarks/>
H,
///<remarks/>
J
}
次のようにこの機能があった。
Public Overridable Function ShouldSerializeSSAC() As Boolean
If _shouldSerializeSSAC Then
Return True
End If
Return (_sSAC <> CType(Nothing, SSAC_Type))
End Function
次のようにSSACクラスだったものの:
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.81.0"),
System.SerializableAttribute()>
Public Enum SSAC_Type
'''<remarks/>
A
'''<remarks/>
B
'''<remarks/>
C
'''<remarks/>
D
'''<remarks/>
E
'''<remarks/>
F
'''<remarks/>
G
'''<remarks/>
H
'''<remarks/>
J
End Enum
どのようにすることができますこのエラーを修正するためにC#コードを更新しますか?
これはリターン(!_sSAC =(SSAC_Type)ヌル)ことを意味しません。常にenumリストの最初のオブジェクトを返しますか? – Jay
いいえブール値を返します。 _ssacがA(0)と等しくなければ真を返します。 –
OK SSAC_Typeをどこで設定できるのか分かりますか? nullableとして、_sSAC.HasValueを返すことに関してはどういう意味ですか?私はHasFlagだけHasValueメソッドを見ることができません – Jay