C# compiler number literals

后端 未结 3 743
误落风尘
误落风尘 2020-11-30 02:54

Does anyone know the full list of C# compiler number literal modifiers?

By default declaring \'0\' makes it an Int32 and \'0.0\' makes it a \'Double\'. I can use the

3条回答
  •  情深已故
    2020-11-30 03:54

    If you don't want to have to remember them, then the compiler also accepts a cast for the same purpose (you can check the IL that the effect is the same - i.e. the compiler, not the runtime, does the cast). To borrow the earlier example:

        var y = (float)0; // y is single
        var z = (double)0; // z is double
        var r = (decimal)0; // r is decimal
        var i = (uint)0; // i is unsigned int
        var j = (long)0; // j is long
        var k = (ulong)0; // k is unsigned long
    

    And for the record, I agree that "var" is a bad choice here; I'll happily use var for a SortedDictionary, but for "int" it is just lazy...

提交回复
热议问题