1. ホーム
  2. c#

[解決済み] キャストせずに short int リテラルを指定するには?

2023-06-17 05:57:43

質問

変数がshort intであることを指定する方法はありますか? 小数のM接尾辞のようなものを探しています。小数の場合、私は言う必要はありません。

var d = (decimal)1.23;

以下のように書けばいいんですね。

var d = 1.23M;

このような書き方はあるのでしょうか?

   var s  = SomeLiteralWithoutCast

ということは、sはshort intであることが暗示されているのでしょうか?

どのように解決するのですか?

簡単に説明します。 いいえ . C#では、文字がない S として使えるような var a = 123S ということになります。 a はタイプ short . そこに L に対して long , F に対して float , D に対して double , M に対して decimal , は使えないが S . あればいいのですが、ないのです。

var a = 1M;  // decimal
var a = 1L;  // long
var a = 1F;  // float
var a = 1D;  // double
var a = 1;   // int

var a = 1U;  // uint
var a = 1UL; // ulong

でなく

var a = 1S; // not possible, you must use (short)1;