Skip to content

Instantly share code, notes, and snippets.

@iwkjosec
Last active July 13, 2019 18:19
Show Gist options
  • Save iwkjosec/b2fe7e03e1d22195368ed87589e07679 to your computer and use it in GitHub Desktop.
Save iwkjosec/b2fe7e03e1d22195368ed87589e07679 to your computer and use it in GitHub Desktop.
この挙動
using System;
class Program
{
static void Main()
{
int i32 = 0;
uint u32 = 0U;
long i64 = 0L;
ulong u64 = 0UL;
var or00 = i32 | i32; // ok
var or01 = u32 | u32; // ok
var or02 = i64 | i64; // ok
var or03 = u64 | u64; // ok
var or10 = i32 | u32; // warning long | long
var or11 = (uint)i32 | u32; // ok
var or12 = (long)i32 | (long)u32; // quick action to or10
var or20 = i64 | u64; // error
var or21 = (ulong)i64 | u64; // ok
var or30 = i64 | i32; // warning long | long
var or32 = i64 | (long)i32; // quick action to or30
var or33 = (ulong)i64 | (ulong)i32; // warning
var or34 = (ulong)i64 | (uint)i32; // ok
var or35 = (ulong)i64 | (ulong)(uint)i32; // quick action to or34
var or31 = i64 | i32; // warning long | long
var or40 = i64 | u32; // ok long | long
var or50 = u64 | i32; // error
var or60 = u64 | u32; // ok ulong | ulong
}
}
@iwkjosec
Copy link
Author

  • 同じ型同士で定義されている
  • 符号付き整数が拡大されることをすると警告
  • 暗黙型変換ができないとエラー

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment