+ 演算子 (C# リファレンス)+ Operator (C# Reference)

+ 演算子は 2 つの形式でサポートされます。単項プラス演算子と二項加算演算子です。The + operator is supported in two forms: a unary plus operator or a binary addition operator.

単項プラス演算子Unary plus operator

単項 + 演算子によって、そのオペランドの値が返されます。The unary + operator returns the value of its operand. すべての数値型でサポートされます。It's supported by all numeric types.

数値加算Numeric addition

数値型の場合、+ 演算子によってそのオペランドの合計が計算されます。For numeric types, the + operator computes the sum of its operands:

Console.WriteLine(5 + 4);       // output: 9
Console.WriteLine(5 + 4.3);     // output: 9.3
Console.WriteLine(5.1m + 4.2m); // output: 9.3

算術演算子の詳細については、「Arithmetic operators」 (算術演算子) を参照してください。For more information about arithmetic operators, see Arithmetic operators.

文字列連結String concatenation

一方または両方のオペランドが文字列型の場合、+ 演算子によってそのオペランドの文字列表現が連結されます。When one or both operands are of type string, the + operator concatenates the string representations of its operands:

Console.WriteLine("Forgot " + " white space");
Console.WriteLine("Probably the oldest constant: " + Math.PI);
// Output:
// Forgot white space
// Probably the oldest constant: 3.14159265358979

C# 6 以降、文字列補間という文字列を書式設定するより便利な方法が提供されます。Starting with C# 6, string interpolation provides a more convenient way to format strings:

Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14

デリゲートの組み合わせDelegate combination

デリゲート型の場合、+ 演算子によって、呼び出されたとき、最初のオペランドを呼び出し、次に 2 番目のオペランドを呼び出す新しいデリゲート インスタンスが返されます。For delegate types, the + operator returns a new delegate instance that, when invoked, invokes the first operand and then invokes the second operand. いずれかのオペランドが null の場合、+ 演算子によって別のオペランドの値が返されます (null でもある場合があります)。If any of the operands is null, the + operator returns the value of another operand (which also might be null). 次の例では、デリゲートが + 演算子と組み合わされるしくみを説明しています。The following example shows how delegates can be combined with the + operator:

Action<int> printDouble = (int s) => Console.WriteLine(2 * s);
Action<int> printTriple = (int s) => Console.WriteLine(3 * s);
Action<int> combined = printDouble + printTriple;
combined(5);
// Output:
// 10
// 15

デリゲート型の詳細については、デリゲートに関するページを参照してください。For more information about delegate types, see Delegates.

演算子のオーバーロード可/不可Operator overloadability

単項演算子と二項 + 演算子は、ユーザー定義型でオーバーロードできます。User-defined types can overload the unary and binary + operators. 二項 + 演算子をオーバーロードすると、加算代入演算子 += も暗黙的にオーバーロードされます。When a binary + operator is overloaded, the addition assignment operator += is also implicitly overloaded.

C# 言語仕様C# language specification

詳細については、C# 言語仕様単項プラス演算子加算演算子に関するセクションを参照してください。For more information, see the Unary plus operator and Addition operator sections of the C# language specification.

関連項目See also