본문 바로가기

ETC Programmings

책안보고 막 코딩하기..

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

 

namespace ConsoleApplication1

{

    class Program

    {

        static String getGreetingMsg()

        {

            return "안녕 이세상아";

        }

        static String getGreetingMsg(String msg)

        {

            String tempMsg = msg;

            return tempMsg;

        }

        static void Main(string[] args)

        {

            ArrayList list = new ArrayList();

            list.Add("Hello");

            list.Add("World");

 

            String temp = Program.getGreetingMsg();

 

            foreach (String s in list)

            {

                Console.WriteLine(s);

            }

            System.Console.WriteLine(temp);

            System.Console.WriteLine(Program.getGreetingMsg("안녕 세상"));

        }

    }

}


굉장히 자바와 흡사한 형태로 코딩이 됐다. 한눈에 알아 볼 수 있을 정도로 C#은 쉽다 - -;; 변수 선언과 함수 선언만 뒤바뀌어도 뭐라하는 C 컴파일러나.. 개조식으로 되어 있는 듯한 C++ 보다는 C# 쪽이 왠지 정겹다.. ㅎㅎ (개인 적인 소견입니다... - -;;) 먼저 가장 윗줄에 확인할 수 있는 것은 using이라는 키워드이다.

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;



얘네는 보나마나 뭔지 딱 한번에 알 수 있다. 자바로 따지면 import와 같은놈이다. 다른 패키지에 있는 자원들을 가져다 쓰기위해서 선언해 주는 것이다. 하나 상이한 점이라면, 패키지의 시작은 소문자가 아니라는 점이다. 뭐 아무렴 어떤가.. System이라는 패키지가 있는 것 만으로도 반갑다.

namespace ConsoleApplication1

{


오.. 이건 분명히 클래스 이름이 아닌데 namespace 렷다? 얘는 패키지로 추정이 된다. 자바에서 선언했다면 package ConsoleApplication1; 이정도가 되겠지? 패키지 선언이 가장 먼저 나와야 되며, 클래스나 함수 처럼 중괄호로 묶어 주신다. 좋아 +_+.. 그럼 그 얘기인 즉슨 한 파일 안에서 다른 패키지도 선언된다는 건가 - -? 실제로 코드를 바꿔 봤더니 된다 - -;; 신기하다.. 이건 나중에 더 자세히 배워야 겠다.

    {

        static String getGreetingMsg()

        {

            return "안녕 이세상아";

        }

        static String getGreetingMsg(String msg)

        {

            String tempMsg = msg;

            return tempMsg;

        }


static 함수의 선언도 되고.. String 형의 반환형이 있다는 것도 좋다.. 일단은 뭐 객체지향이니까.. - -;; 정말 편하다.. 내 머리속은 객체지향 컨셉의 프로그래밍이 가득해서 C에서 엄청 애먹고 있었는데 C#은 왠지 쉽다;; 그리고.. 오버로딩도 된다.. - -;; C에서는 할줄을 몰라서 그런지 오버로딩이 전혀 안됐다.. 오버로딩도 객체지향 컨셉인가 - -; 정말 모르는게 많다 ㅠ

        static void Main(string[] args)

        {

            ArrayList list = new ArrayList();

            list.Add("Hello");

            list.Add("World");

 

            String temp = Program.getGreetingMsg();

 

            foreach (String s in list)

            {

                Console.WriteLine(s);

            }

            System.Console.WriteLine(temp);

            System.Console.WriteLine(Program.getGreetingMsg("안녕 세상"));

        }


하하.. 메인 함수이다. String과 string 둘다 있는거 같다 - -; ArrayList 같은 Collections API를 제공한다. 사용 방법은 거의 비슷하다. Add 함수를 이용하여 요소들을 추가한다. 클래스명.함수명으로 사용이 가능한 Static 함수 사용 예제도 볼 수 있고.. 하나 신기한 점은 foreach... 저거 SCJP 하면서 봤었는데.. 저게 C#에서 나오는 줄 알았더라면 더 문제 풀면서 재미있었을텐데.. 자바의 향상된 포문과 조금 다르다. 나름 추측을 하자면, 추출해낼 요소의 데이터 타입과 식별자를 정의한 다음에 in 이라는 키워드와 Iterable 이 구현된 Collections 형 객체를 넣는 것일듯.. 마찬가지로 집어 넣는일은 안될거 같다. ㄲㄲ (언제까지나 추측)

우후후.. C#은 굉장히 쉽네효.. -ㅅ-;;; 는 훼이크고.. 아직 문법이 낯익지가 않기때문에 좀더 지켜봐야지롱