This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| c_sharp_vs_java [2015/07/15 15:48] – [Eclipse vs Visual Studio (IDE 단축키)] ledyx | c_sharp_vs_java [2021/02/07 04:22] (current) – [C# vs Java] ledyx | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| = C# vs Java = | = C# vs Java = | ||
| - | {{tag>C-Sharp | + | {{tag>C# Java}} |
| <fs 25px> | <fs 25px> | ||
| Line 25: | Line 25: | ||
| == Primitive Types == | == Primitive Types == | ||
| + | * C#은 모든 Type이 객체! | ||
| * Java는 모든 Data Type이 부호 있는(Signed) 수이다. 그에 반해 C#은 부호 없는(unsigned) 수를 지원한다! | * Java는 모든 Data Type이 부호 있는(Signed) 수이다. 그에 반해 C#은 부호 없는(unsigned) 수를 지원한다! | ||
| * byte는 signed를 지원한다. | * byte는 signed를 지원한다. | ||
| + | |||
| ^ Data Type ^ Size | ^ Data Type ^ Size | ||
| Line 36: | Line 38: | ||
| * Java와 마찬가지로 byte(1byte)를 지원하고, | * Java와 마찬가지로 byte(1byte)를 지원하고, | ||
| * 큰 수를 다루는 Type에 차이가 있다. (Java는 BigDecimal(32byte), | * 큰 수를 다루는 Type에 차이가 있다. (Java는 BigDecimal(32byte), | ||
| + | |||
| ^ Data Type ^ Size ^ Range ^ | ^ Data Type ^ Size ^ Range ^ | ||
| Line 64: | Line 67: | ||
| * Javascript와 같은 " | * Javascript와 같은 " | ||
| * object와는 다르다. | * object와는 다르다. | ||
| + | |||
| + | == enum == | ||
| + | === int to Enum === | ||
| + | * (MYENUM) Enum.ToObject(typeof(MYENUM), | ||
| + | * < | ||
| + | |||
| = Method 활용 = | = Method 활용 = | ||
| + | |||
| + | **기본적으로 Java와 동일하게 Method의 Argument로 전달되는 값은 <fc # | ||
| + | 단, C#은 키워드를 통해 Call by reference를 이용할 수 있다! | ||
| + | |||
| + | |||
| == 여러 개의 반환 값이 필요할 때 == | == 여러 개의 반환 값이 필요할 때 == | ||
| * 아래 두 방법 모두 Parameter로 넘긴 값을 반환 받지 않고도 저장 가능하다! | * 아래 두 방법 모두 Parameter로 넘긴 값을 반환 받지 않고도 저장 가능하다! | ||
| Line 1306: | Line 1320: | ||
| { | { | ||
| Console.WriteLine(d(a, | Console.WriteLine(d(a, | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | === Event === | ||
| + | * 객체에 일어난 사건 알리기. Delegate의 주 용도. | ||
| + | |||
| + | <sxh csharp ; highlight: | ||
| + | using System; | ||
| + | |||
| + | namespace ConsoleApplication2 | ||
| + | { | ||
| + | delegate void onClick(string what); | ||
| + | |||
| + | class Program | ||
| + | { | ||
| + | //event EventType EventName | ||
| + | public event onClick myClick; | ||
| + | |||
| + | public static void Main(string[] args) | ||
| + | { | ||
| + | Program main = new Program(); | ||
| + | TestDelegate td = new TestDelegate(); | ||
| + | |||
| + | onClick deleMethod1 = new onClick(td.MouseClick); | ||
| + | onClick deleMethod2 = new onClick(td.KeyBoardClick); | ||
| + | |||
| + | //Event += Delegate | ||
| + | main.myClick += deleMethod1; | ||
| + | main.myClick += deleMethod2; | ||
| + | |||
| + | main.myClick(" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public class TestDelegate | ||
| + | { | ||
| + | public void MouseClick(string what) | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | } | ||
| + | |||
| + | public void KeyBoardClick(string what) | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <sxh csharp ; highlight: | ||
| + | /* Ver.1 */ | ||
| + | using System; | ||
| + | |||
| + | namespace ConsoleApplication2 | ||
| + | { | ||
| + | delegate void sendMessage(string message); | ||
| + | |||
| + | class Program | ||
| + | { | ||
| + | public static event sendMessage sendMessageEvent; | ||
| + | |||
| + | public static void Main(string[] args) | ||
| + | { | ||
| + | Program.sendMessageEvent += Program_sendMessageEvent; | ||
| + | Program.sendMessageEvent(" | ||
| + | } | ||
| + | |||
| + | static void Program_sendMessageEvent(string message) | ||
| + | { | ||
| + | Console.WriteLine(message); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | <sxh csharp> | ||
| + | /* Ver.2 */ | ||
| + | using System; | ||
| + | |||
| + | namespace ConsoleApplication2 | ||
| + | { | ||
| + | class Program | ||
| + | { | ||
| + | public static void Main(string[] args) | ||
| + | { | ||
| + | MyEventManager.sendMessageEvent += MyEventManager_sendMessageEvent; | ||
| + | MyEventManager.SetOnSendMessage(" | ||
| + | } | ||
| + | |||
| + | static void MyEventManager_sendMessageEvent(string message) | ||
| + | { | ||
| + | Console.WriteLine(message); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | class MyEventManager | ||
| + | { | ||
| + | public delegate void sendMessage(string message); | ||
| + | public static event sendMessage sendMessageEvent; | ||
| + | |||
| + | public static void SetOnSendMessage(string message) | ||
| + | { | ||
| + | if (sendMessageEvent != null) | ||
| + | sendMessageEvent(message); | ||
| } | } | ||
| } | } | ||
| Line 1394: | Line 1518: | ||
| = Visual Studio 2013 사용 Tip = | = Visual Studio 2013 사용 Tip = | ||
| + | |||
| # Eclipse처럼 Method 자동완성(Intelligence) 사용시 곧바로 자동 소괄호+매개 변수 설명을 보고싶다면 ** Visual Assist X**를 사용하면 된다. < | # Eclipse처럼 Method 자동완성(Intelligence) 사용시 곧바로 자동 소괄호+매개 변수 설명을 보고싶다면 ** Visual Assist X**를 사용하면 된다. < | ||
| # Eclipse의 **syso, Ctrl+Space**를 치면 **System.out.println()**이 자동생성되는 것처럼 VS에도 같은 기능으로 **코드 조각**이라는 기능이 있다. | # Eclipse의 **syso, Ctrl+Space**를 치면 **System.out.println()**이 자동생성되는 것처럼 VS에도 같은 기능으로 **코드 조각**이라는 기능이 있다. | ||
| * 예) cw, Ctrl+Space => Console.WriteLine(); | * 예) cw, Ctrl+Space => Console.WriteLine(); | ||
| * 더 많은 예시는 https:// | * 더 많은 예시는 https:// | ||
| + | |||
| = Eclipse vs Visual Studio (IDE 단축키) = | = Eclipse vs Visual Studio (IDE 단축키) = | ||
| + | |||
| |< | |< | ||
| ^ ^ Eclipse | ^ ^ Eclipse | ||