📚目次
🔵コードにコメントを入れる
🔖 1行コメント
🔖 複数行コメント
🔵変数を宣言する
🔖 整数型を宣言する
⚙ short/ushort型
⚙ int/uint型
⚙ long/ulong型
⚙ BigInteger型
⚙ 16進数で整数を宣言する
⚙ 2進数で整数を宣言する
🔖 浮動小数点数型を宣言する
⚙ float型
⚙ double型
⚙ decimal型(10進数型)
🔖 文字列型を宣言する
⚙ 文字列リテラル
⚙ 逐語的文字列リテラル
⚙ 挿入文字列リテラル
🔖 dynamic型を利用する
⚙ dynamic型
⚙ ExpandoObject型
🔖 タプル型を利用する(C# 7.0)
⚙ タプル
⚙ 名前付きタプル
🔵定数を宣言する
🔖 const
🔖 static readonly
🔵コードにコメントを入れる
🔖 1行コメント
// コメント
using System;
class Program
{
static void Main(string[] args)
{
// ここは実行されない
Console.WriteLine("Hello, World!!");
}
}
🔖 複数行コメント
/*
コメント
*/
using System;
class Program
{
static void Main(string[] args)
{
/*
ここは
実行されない
*/
Console.WriteLine("Hello, World!!");
}
}
🔵変数を宣言する
🔖 整数型を宣言する
⚙ short/ushort型
short value;
var value = (short)整数値;
ushort value;
var value = (ushort)整数値;
using System;
class Program
{
static void Main(string[] args)
{
var value1 = (short)123;
var value2 = (ushort)123;
}
}
⚙ int/uint型
int value;
var value = 整数値;
var value = 整数値u;
using System;
class Program
{
static void Main(string[] args)
{
var value1 = 123;
var value2 = 123u;
}
}
⚙ long/ulong型
long value;
var value = 整数値l;
var value = (long)整数値;
ulong value;
var value = 整数値ul;
var value = (ulong)整数値;
using System;
class Program
{
static void Main(string[] args)
{
var value1 = 123l;
var value2 = 123ul;
}
}
⚙ BigInteger型
var value = new System.Numerics.BigInteger(数値);
var value = (System.Numerics.BigInteger)数値;
using System;
using System.Numerics;
class Program
{
static void Main(string[] args)
{
var value1 = new BigInteger(1234567890);
var value2 = (BigInteger)1234567890;
}
}
⚙ 16進数で整数を宣言する
// 0~Fで構成される
var value = 0x●●;
class Program
{
static void Main(string[] args)
{
var value1 = 0xFF;
var value2 = 0xFFEEDD;
}
}
⚙ 2進数で整数を宣言する
// 0,1で構成される
var value = 0b●●;
class Program
{
static void Main(string[] args)
{
var value1 = 0b0001;
var value2 = 0b0101_0101;
}
}
🔖 浮動小数点数型を宣言する
⚙ float型
float value;
var value = 実数値f;
var value = (float)実数値;
class Program
{
static void Main(string[] args)
{
var value1 = 123f;
var value2 = (float)3.14;
}
}
⚙ double型
double value;
var value = 実数値;
var value = 実数値d;
class Program
{
static void Main(string[] args)
{
var value1 = 123.456;
var value2 = 3.14d;
}
}
⚙ decimal型(10進数型)
decimal value;
var value = 数値m;
var value = (decimal)数値;
class Program
{
static void Main(string[] args)
{
var value1 = 123.456m;
var value2 = (decimal)500;
}
}
🔖 文字列型を宣言する
⚙ 文字列リテラル
var text = "ここに文字列を定義する";
using System;
class Program
{
static void Main(string[] args)
{
var text = "\"Hello, World!!\"";
Console.WriteLine(text);
}
}
"Hello, World!!"
⚙ 逐語的文字列リテラル
単純なエスケープシーケンス・16進数のエスケープシーケンス・Unicodeのエスケープシーケンスはリテラルに解釈されます。
引用符(")だけはリテラル解釈されません。逐語的文字列リテラル内で引用符を利用する場合は、引用符を2重にすることで利用することができます。
var text = @"ここに文字列を定義する";
using System;
class Program
{
static void Main(string[] args)
{
var text = @"""Hello, World!!""";
Console.WriteLine(text);
}
}
"Hello, World!!"
⚙ 挿入文字列リテラル
中カッコ{}に変数を指定することで、文字列中に変数の値を挿入することができます。
また、ToString(IFormatProvider)を利用できる型の場合、フォーマット文字列を渡すことも可能です。
var text = $"ここに文字列を定義する。{ここに変数を指定}";
var text = $"ここに文字列を定義する。{ここに変数を指定:ここにフォーマット文字列}";
using System;
class Program
{
static void Main(string[] args)
{
var name = "midoliy";
var hello = $"Hello, {name}.";
var text = $"({DateTime.Now:yyyy/MM/dd HH:mm:ss}) {hello}";
Console.WriteLine(text);
}
}
(2020/10/12 21:17:41) Hello, midoliy.
🔖 dynamic型を利用する
⚙ dynamic型
dynamic value;
var value = (dynamic)何かしらの値;
using System;
class Program
{
static T Add<T>(T lhs, T rhs)
{
dynamic l = lhs, r = rhs;
return l + r;
}
static void Main(string[] args)
{
Console.WriteLine( Add(10, 20) );
Console.WriteLine( Add("Sample", " Text") );
}
}
30
Sample Text
⚙ ExpandoObject型
dynamic value = new System.Dynamic.ExpandoObject();
var value = (dynamic)new System.Dynamic.ExpandoObject();
using System;
using System.Dynamic;
class Program
{
static void Main(string[] args)
{
var obj = (dynamic)new ExpandoObject();
obj.Name = "midoliy";
obj.PrintHello = (Action<dynamic>)((dynamic value) => Console.WriteLine($"Hello, {value.Name}."));
obj.PrintHello(obj);
}
}
Hello, midoliy.
🔖 タプル型を利用する(C# 7.0)
⚙ タプル
var value = (値1, 値2 (, 値3...));
using System;
class Program
{
static void Main(string[] args)
{
var tuple1 = ("midoliy", 31);
Console.WriteLine($"name= {tuple1.Item1}, age= {tuple1.Item2}");
var tuple2 = ("midoliy", 31, "大阪");
Console.WriteLine($"name= {tuple2.Item1}, age= {tuple2.Item2}, address= {tuple2.Item3}");
}
}
name= midoliy, age= 31
name= midoliy, age= 31, address= 大阪
⚙ 名前付きタプル
var value = (名前1:値1, 名前2:値2 (, 名前3:値3...));
using System;
class Program
{
static void Main(string[] args)
{
var tuple1 = (Name:"midoliy", Age:31);
Console.WriteLine($"name= {tuple1.Name}, age= {tuple1.Age}");
var tuple2 = (Name:"midoliy", Age:31, Address:"大阪");
Console.WriteLine($"name= {tuple2.Name}, age= {tuple2.Age}, address= {tuple2.Address}");
}
}
name= midoliy, age= 31
name= midoliy, age= 31, address= 大阪
🔵定数を宣言する
⚙ const
アクセシビリティ const 型 value = 値;
using System;
class Program
{
private const int _value = 123456;
static void Main(string[] args)
{
Console.WriteLine($"定数= {_value}");
}
}
定数= 123456
⚙ static readonly
定数宣言をする場合、バージョニング問題の兼ね合いでstatic readonlyを利用することが多いです。
ただ、厳密にはstatic readonlyは定数ではないので、その点は留意しておきましょう。
アクセシビリティ static readonly 型 value = 値;
using System;
class Program
{
private static readonly int _value = 123456;
static void Main(string[] args)
{
Console.WriteLine($"定数= {_value}");
}
}
定数= 123456