티스토리 뷰
|
메서드 사용시 |
변수 사용시 |
java |
final |
final |
C# |
sealed |
readonly, const |
추가 1
자바에서는 모든 비정적 메소드가 가상으로 오버라이딩 될 수 있는데 C#에서는 override로 표현을 해야 오버라이딩이 가능
때문에 더이상 overriding 하지 않기 위해서 앞에 sealed 추가 해 줘야함.
ex : public sealed override void Class() {....}
추가 2
readonly는 생성자에서 한 번 더 할당할 수 있고, const는 선언시 값이 할당되어야 함(자바의 final과 사용방법이 유사)
readonly ex :
1. 생성자에서 값 입력시 정상
public class Hello1 {
public static void Main() {
//System.Console.WriteLine("Hello C#");
Temp1 temp = new Temp1(3);
temp.printInt();
}
}
public class Temp1{
public readonly int i;
public Temp1(int input){
i = input;
}
public void printInt(){
System.Console.WriteLine("int i : " + i);
}
}
결과값 :>> int i : 3 출력됨
2. 생성자에서 값 입력 후 메서드로 값 변경을 시도할 경우
public class Hello1 {
public static void Main() {
Temp1 temp = new Temp1(3);
temp.printInt();
temp.setInt(4);
temp.printInt();
}
}
public class Temp1{
public readonly int i;
public Temp1(int input){
i = input;
}
public void printInt(){
System.Console.WriteLine("int i : " + i);
}
public void setInt(int localInput){
i = localInput;
}
}
결과값 :>> 빌드시 에러 발생
A readonly field `Temp1.i' cannot be assigned to (except in a constructor or a variable initializer)
'Programming > .Net' 카테고리의 다른 글
C#(.Net)에서 Log4net 설정 및 사용하기 (0) | 2020.03.27 |
---|---|
C# ref와 out의 차이 (0) | 2019.03.05 |
전원 끄기 도우미 (0) | 2015.06.08 |
Ibatis.NET XML Embedded 환경 설정 방법 (0) | 2013.12.16 |
iBatis.NET 사용법 - 마이크로소프트웨어 09년 5월호 기사[펌] (0) | 2013.11.25 |