に変換するには、次の 2 つの方法がありint
ますshort?
。
- 値が短い範囲にない場合、最初の 1 つは失敗します。
- 2 番目のアプローチは機能しますが、不要な
conversion to string
.
より良い方法はありますか?
編集:
以下の答えから:
Int16 は Int32 のサブセットにすぎないため、「中間」型への変換は必要ありません。
コード
//Approach 1
int vIn = 123456789;
short? vOut = Convert.ToInt16(vIn);
//Value was either too large or too small for an Int16.
//Approach 2
short? vOut2 = null;
int vIn2 = 123456789;
short number;
string characterRepresentationOfInt = vIn2.ToString();
bool result = Int16.TryParse(characterRepresentationOfInt, out number);
if (result)
{
vOut2 = number;
}
参照: