유니티를 이루고있는 언어인 c#
유니티로 게임만들려면 c#을 배워야겟음
일단, 기본문법부터
1
반복문
Java (향상된 for문): for (타입 변수 : 컬렉션)
c# foreach (var 변수 in 컬렉션)
2
변수선언중,문자열
string message = "Hello, C#!"; // C#에서는 String 대신 string 키워드를 주로 사용
3
(약간 파이썬이랑 비슷한것같기도)
C#: 문자열 앞에 $를 붙여 변수를 {} 안에 바로 넣을 수 있습니다.
// C#
string name = "World";
int year = 2023;
string greeting = $"Hello, {name}! Welcome to {year}."; // 매우 간결함
4
함수
// C#은 관례적으로 메소드 이름을 대문자로 시작
public int Add(int a, int b) {
return a + b;
}
5
(어 이거 파이썬에 있지않나)
왜 c#에는 파이썬에 있는것들이 많은거지?
- 기본값 매개변수 (Default Parameters): Java는 지원하지 않으며, 오버로딩으로 구현해야 합니다.
// C#
public void Greet(string name = "Guest") { // name 값을 주지 않으면 "Guest"가 기본값
Console.WriteLine($"Hello, {name}!");
}
Greet(); // "Hello, Guest!" 출력
Greet("Tom"); // "Hello, Tom!" 출력
6
객체의 필드(멤버 변수)에 접근하고 값을 설정할 때
Java는 전통적인 Getter/Setter 메소드를 사용하지만,
C#은 프로퍼티를 사용
// C#
public class Person {
// 자동 구현 프로퍼티 (Auto-Implemented Property)
public string Name { get; set; } // 컴파일러가 알아서 private 필드와 getter/setter를 만들어 줌
}
// 사용
Person p = new Person();
p.Name = "C#"; // 변수에 값을 할당하듯이 사용 (내부적으로 set 메소드 호출)
Console.WriteLine(p.Name); // 변수 값을 읽듯이 사용 (내부적으로 get 메소드 호출)
7
상속:키워드 다름
C#: 클래스 상속과 인터페이스 구현 모두 콜론(:)을 사용합니다.
- 단, 상속받는 클래스는 하나만 올 수 있고, 인터페이스는 여러 개 올 수 있습니다. (클래스가 인터페이스보다 먼저 와야 함)
// C#
// Animal 클래스, IMovable 인터페이스가 있다고 가정 (인터페이스 이름은 I로 시작하는 것이 관례)
public class Dog : Animal, IMovable {
// ...
}
8
오버라이딩 방식 차이
부모 메서드는 반드시 virtual로 선언
자식은 반드시 override를 명시해야 함
class Animal {
public virtual void Speak() { //근데 이거는 좀 그런게, 자식이 오버라이딩 할지 안할지 부모 클래스 설계할떄는 모르잖아
Console.WriteLine("동물 소리");
}
}
class Dog : Animal {
public override void Speak() { // >>>>@골뱅이가 아니라 코드안에 직접써야하네<<<<<
Console.WriteLine("멍멍");
}
}
-----------------------------
📌 C#은 반드시 virtual + override 세트 안 그러면 "숨김(hidden)" 처리됨
(= 재정의가 아닌, 메서드 가리기 → new 키워드 필요함
즉,
- virtual + override → 부모가 "이 메서드는 바꿔도 돼" → 자식이 "내 방식으로 고쳤어"
- new → 자식이 "나는 이름만 같을 뿐, 완전 새 메서드야" → 부모랑 별개
9
기본 접근 제한자 차이
C#에서는 대부분 명시적으로 public, protected, private을 적어야 해요
자바는 같은 패키지면 접근 가능한데
요소 Java 기본값 C# 기본값 설명
| 클래스 | package-private | internal | 동일 프로젝트만 접근 가능 |
| 필드/메서드 | package-private | private | C#은 외부에서 아예 접근 못함 |
10
상속받은 부모 생성자나 메서드 호출:걍 키워드 차이인듯
Java C#
| super() | base() |
| super.method() | base.Method() |
'개발 > 유니티' 카테고리의 다른 글
| [유니티] LINQ (8) | 2025.07.18 |
|---|---|
| [유니티] 델리게이트와 이벤트 (12) | 2025.07.18 |
| [유니티]c#문법5 :스트림 이해 및 예제 (15) | 2025.07.15 |
| [유니티] c#문법4: 람다함수와 함수형 언어(java) (11) | 2025.07.15 |
| [유니티] c#문법3: 궁금햇던 것들에 대하여 (8) | 2025.07.15 |