2012-01-13 6 views
1

私はvb.netにC#コードを変換しようとしていますが、私は "?" c#でvb.netに。ここに変換する私のコード"?"記号を変換する方法C#でvb.netに?

public audit_trail Mapper(IDataReader rdr) 
{ 
     audit_trail audit_trail = new audit_trail(); 
     audit_trail.Log_id = rdr["Log_id"] is DBNull ? 0 : (int)rdr["Log_id"];    
     audit_trail.Host = rdr["Host"] is DBNull ? string.Empty : (string)rdr["Host"]; 
     return audit_trail; 
} 

どのように記号を変換する? 〜にvb.net ??

私は

if rdr["Host"] is DBNull.Value then 
    audit_trail.Host = string.Empty 
else 
    audit_trail.Host = rdr["Host"] 
end if 

のようなものに

audit_trail.Host = rdr["Host"] is DBNull ? string.Empty : (string)rdr["Host"]; 

を変換したいと思いますが、コードは、コードの長すぎる、あまりにも多くのラインです..あなたたちはに変換するためのアイデアを持っています短いもの?

+3

参照[VB.NET?](http://stackoverflow.com/questions/576431/is-there-a-conditional-ternary-operator-in-vb-netの条件三項演算子があります) – BoltClock

答えて

6

3進演算子のビジュアル基本構文はIf([condition,] op1, op2)です。

4
audit_trail.Host = If(IsDBNull(rdr("Host")), String.Empty, CType(rdr("Host"), String)) 
関連する問題