다음을 통해 공유


연산자(Visual C# Express)

업데이트: 2007년 11월

C# 연산자의 구문은 다른 C 방식의 프로그래밍 언어와 비슷합니다. 연산자는 계산을 수행하거나, 변수에 값을 할당하거나, 같음 또는 같지 않음 여부를 테스트하거나 그 밖의 다른 작업을 수행하는 데 사용됩니다.

다음 단원에는 가장 일반적으로 사용되는 일부 C# 연산자의 목록이 나와 있습니다. 모든 연산자의 전체 목록을 보려면 C# 연산자를 참조하십시오.

대입 및 같음 연산자

C#에서 등호(=) 연산자는 C 및 C++에서와 같은 기능을 합니다.

연산자

용도

=

값을 대입합니다.

==

같음 여부를 테스트합니다.

예제

int x = 100;
if (x == 100)
{
    System.Console.WriteLine("X is equal to 100");
}

수치 및 논리 연산자

다음은 우선 순위에 따라 표시한 기본 수치 연산자 목록입니다. 다른 순서로 연산을 수행하려면 괄호를 사용합니다.

연산자

용도

*, /, %

곱하기, 나누기, 나머지 연산

+, -

더하기, 빼기

&

논리 AND

^

논리 XOR 연산자

|

논리 OR

예제

int x = 1;
int y = x + 10 * 100;      // multiplication first y = 1001
int z = (x + 10) * 100;    // addition first       z = 1100

증가 및 감소 연산자

다음 예제에서처럼 후위 및 전위 연산자 같은 C/C++ 스타일의 간단한 연산 표시 방식이 지원됩니다.

연산자

용도

v++

변수를 1만큼 늘립니다.

v+=n

변수를 n만큼 늘립니다.

v*=n

변수에 n을 곱합니다.

v-=n

변수 v에서 n을 뺍니다.

예제

int x = 0;

int y = x++;    // x is 1, y is 0

System.Console.WriteLine("{0} {1}", x, y);

int z = ++x;    // x is 2, z is 2

System.Console.WriteLine("{0} {1}", x, z);

관계형 연산자

다음 연산자는 두 값을 비교하고 그 결과를 bool로 반환합니다.

연산자

용도

==

같음

!=

같지 않음

>

보다 큼

<

보다 작음

>=

크거나 같음

<=

작거나 같음

예제

int x = int.Parse(System.Console.ReadLine());

if (x > 100)
{
    System.Console.WriteLine("X is greater than 100");
}

논리 조건 연산자

논리 연산자는 여러 절을 결합하여 더 융통성 있는 조건문을 만드는 데 사용합니다.

연산자

용도

&&

조건부 논리 AND

||

조건부 논리 OR

!

조건부 부정

예제

int x = int.Parse(System.Console.ReadLine());

if ((x >= 100) && (x <= 200))
{
    System.Console.WriteLine("X is between 100 and 200");
}

고급 수치 연산자

삼각법 등의 고급 수치 연산을 수행하려면 .NET Framework의 Math 클래스를 사용합니다. 다음 예제에서는 Sin(사인) 및 Sqrt(제곱근) 메서드와 PI 상수를 사용합니다.

예제

double d = System.Math.Sin(System.Math.PI/2);
double e = System.Math.Sqrt(144);

연산자 오버로드

C#에서는 연산자 오버로드를 지원합니다. 연산자를 오버로드하면 사용자 고유의 데이터 형식과 함께 사용할 때 더 의미 있는 연산자로 다시 정의할 수 있습니다. 다음 예제에서는 열거형으로 정의된 변수 형식에 하나의 요일을 저장하는 구조체를 만듭니다. 자세한 내용은 구조체(Visual C# Express)열거형(Visual C# Express)을 참조하십시오. 더하기 연산자는 현재 요일에 날짜 정수를 더해 새 요일을 반환할 수 있도록 오버로드됩니다. 예를 들어, 일요일에 하루를 더하면 월요일이 반환됩니다.

예제

using System;

// Define an DayOfWeek data type
enum DayOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

// Define a struct to store the methods and operators
struct Day 
{
    private DayOfWeek day;

    // The constructor for the struct
    public Day(DayOfWeek initialDay)
    {
        day = initialDay;
    }

    // The overloaded + operator
    public static Day operator +(Day lhs, int rhs)
    {
        int intDay = (int)lhs.day;
        return new Day((DayOfWeek)((intDay + rhs) % 7));
    }

    // An overloaded ToString method
    public override string ToString()
    {
        return day.ToString();
    }
}

public class Program
{
    static void Main()
    {
        // Create a new Days object called "today"
        Day today = new Day(DayOfWeek.Sunday);
        Console.WriteLine(today.ToString());

        today = today + 1;
        Console.WriteLine(today.ToString());

        today = today + 14;
        Console.WriteLine(today.ToString());
    }
}

참고 항목

개념

C# 언어 입문

참조

C# 연산자