Dart에서 final
키워드의 의미와 사용법
Dart에서 final
키워드는 변수를 한 번만 할당할 수 있도록 제한하는 데 사용됩니다. final
로 선언된 변수는 단 한 번 초기화될 수 있으며, 초기화된 후에는 값이 변경될 수 없습니다. 이는 주로 상수 또는 변경되지 않아야 하는 값을 정의할 때 사용됩니다. 다음은 final
키워드의 주요 특징과 사용 예입니다:
주요 특징
- 초기화 후 변경 불가:
final
변수는 한 번 초기화된 후 값을 변경할 수 없습니다. - 런타임 상수:
final
변수는 컴파일 시점이 아닌 런타임 시점에서 값을 할당할 수 있습니다. - 지연 초기화:
final
변수는 선언 시 즉시 초기화하지 않고 나중에 한 번만 초기화할 수 있습니다.
사용 예
void main() {
final String name = "John";
final int age;
// 지연 초기화
age = 30;
print("Name: $name");
print("Age: $age");
// 아래 코드는 컴파일 오류를 발생시킵니다.
// name = "Doe"; // 오류: 'name'은 final 변수입니다.
// age = 35; // 오류: 'age'는 이미 할당되었습니다.
}
요약
final
키워드는 변수를 한 번만 초기화할 수 있도록 제한합니다.- 선언 시 초기화하거나, 나중에 한 번만 초기화할 수 있습니다.
- 초기화된 후에는 값을 변경할 수 없습니다.
이러한 특성 덕분에 final
키워드는 코드에서 상수를 정의하거나, 한 번 초기화된 후에는 변하지 않는 값을 나타내는 데 유용하게 사용됩니다.
C#에서 readonly
키워드의 의미와 사용법
C#에서도 Dart의 final
과 유사한 기능을 하는 키워드가 있습니다. C#에서 이와 유사한 기능을 제공하는 키워드는 readonly
입니다. readonly
키워드를 사용하여 필드를 선언하면, 해당 필드는 객체가 생성된 후 초기화할 수 있지만, 한 번 초기화된 후에는 변경할 수 없습니다. 이는 주로 상수처럼 사용되지만, 객체가 생성된 후에 값을 설정할 수 있는 경우에 유용합니다.
readonly
키워드 사용 예제
using System;
class Person
{
public readonly string Name;
public readonly int Age;
// 생성자에서 readonly 필드 초기화
public Person(string name, int age)
{
Name = name;
Age = age;
}
public void DisplayInfo()
{
Console.WriteLine($"Name: {Name}");
Console.WriteLine($"Age: {Age}");
}
}
class Program
{
static void Main()
{
// 객체 생성 시 readonly 필드 초기화
Person person = new Person("John", 30);
person.DisplayInfo();
// 아래 코드는 컴파일 오류를 발생시킵니다.
// person.Name = "Doe"; // 오류: 'Person.Name'은 readonly 필드입니다.
// person.Age = 35; // 오류: 'Person.Age'는 readonly 필드입니다.
}
}
const
키워드와의 차이점
C#에는 const
키워드도 있지만, 이는 컴파일 시간 상수를 정의하는 데 사용됩니다. const
필드는 반드시 선언과 동시에 초기화되어야 하며, 런타임에 값을 변경할 수 없습니다.
class Constants
{
public const int MaxValue = 100;
public void DisplayConstant()
{
Console.WriteLine($"MaxValue: {MaxValue}");
}
}
class Program
{
static void Main()
{
Constants constants = new Constants();
constants.DisplayConstant();
// 아래 코드는 컴파일 오류를 발생시킵니다.
// Constants.MaxValue = 200; // 오류: 'Constants.MaxValue'은 상수입니다.
}
}
요약
readonly
키워드는 변수를 한 번만 초기화할 수 있도록 제한하며, 런타임에 객체가 생성된 후 초기화할 수 있습니다.const
키워드는 컴파일 시간에 초기화되어야 하며, 런타임에 값을 변경할 수 없습니다.
따라서, C#에서는 readonly
키워드를 사용하여 Dart의 final
과 유사한 기능을 구현할 수 있습니다.
이 블로그 포스트에서는 Dart의 final
키워드와 C#의 readonly
키워드를 비교하고, 각각의 사용법과 예제를 통해 그 차이점을 설명했습니다. 이를 통해 각 언어에서 변경 불가능한 변수를 어떻게 선언하고 사용하는지에 대한 이해를 높일 수 있을 것입니다.
'C#' 카테고리의 다른 글
[C#] CancellationToken 사용법 (0) | 2024.07.11 |
---|---|
[C#] 형 변환에 대하여 (for string 그리고 메모리 관점) (0) | 2024.04.17 |
[C#] HttpClient, IHttpClientFactory 차이와 올바른 사용법 (0) | 2024.03.25 |
[C#] 명시적 & 묵시적 형변환 (0) | 2023.11.10 |
[C#] JSON 데이터를 beautify(예쁘게 정렬하여 가독성을 높이는 것)하고 indent(들여쓰기)하는 방법 (0) | 2023.07.28 |
댓글