midas+son의 크리에이티브(creative) 이야기

C# 첫 경험

공부/C#2016. 5. 3. 12:53

//c++ 과 java의 혼종 같은 언어가 c#이다.


//########## 잡담 ##########

/*

c언어(절차지향)는 a언어, b언어 다음에 나온 언어라서 c언어이다.

c++ 은 c언어에서 발전(객체지향)

C#은 c++에서 더 발전(객체지향) 

++++을 2단으로

++

++

하면 큰 #이 된다더라......

*/

//######## 잡담 끝 #########


//뒤에 있는 namespace들을 사용하겠다.

//c, c++의 #include 와 비슷하다.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


//c++의 namespace 자체와는 같긴 같다.

//일종의 라이브러리 한 단위하고 보면 된다.

//클래스를 카테고리 별로 나눴다고 생각 하면 편하다.

namespace Day01

{

    class Program

    {

        //Program 에 있는 main()함수가 먼저 동작 한다.

        //static은 있어야 한다. Program을 생성하지 않았지만 main()은 동작 해야 하기 때문이다.

        //string[] args : 아규먼트, 콘솔 실행시 뒤의 인자값 넣어 string의 배열로 받아올 수 있다.

        static void Main(string[] args)

        {

            //c++과는 다르게 자동완성이 장난 아니게 잘되어 있다.


            Console.Write("Hello World\n"); //\n으로 개행 가능


            Console.WriteLine("Hello World2"); //한줄 단위로 쓸때.. 알아서 개행이 된다


            //string input = Console.ReadLine();  //입력을 받아서 input변수에 넣는다.

            //Console.WriteLine(input);           //input변수를 출력


            int i = 10;

            int j = i;

            j++;


            Console.WriteLine("i : {0} j : {1}", i, j); //i와 j 출력 방법

            //{, } 출력 

            Console.WriteLine("i : {{0}} j : {1}", i, j); //틀린방법 : {0} 자체가 문자로 인식 됨

            Console.WriteLine("i : {{{0}}} j : {1}", i, j); //되는방법 : {{가 {로 인식. }} 는 } 하나로 인식

            Console.WriteLine("i : {{{{0}}}} j : {1}", i, j); //틀린방법 : {{0}} 자체가 문자로 인식 됨

            Console.WriteLine("i : {{{{{0}}}}} j : {1}", i, j); //되는방법


            string line = string.Format("{0} {1}", i, j);   //포맷에 맞게 변수에 저장도 가능


            Console.WriteLine(line);


            //안좋은 방법

            Console.WriteLine("i : " + i + " j : " + j);    //스트링 까지 다 +로 이어질 수 있다. 

            //string 은 변경 불가능한 변수이다.(메모리 상)

            //string a = "1234";

            //a = "1234" + "abcd";

            //위처럼 가능하나 메모리 상태에서는 

            //처음 "1234"위 공간을 만들고

            //아래에서 +로 더할 떄 별도의 "1234"와 "abcd"를 메모리공간에 다시 만들고

            //"1234abcd"로 더한 메모리 공간을 다시 만들고 이 주소값을 변수 a가 가르키게 만들 뿐이다.

            //메모리 공간 낭비가 심하다.

            //나중에 개비지컬렉터가 삭제 해주긴 하지만 개비지컬렉터가 언제 지울지 모르는 것이다.


            int a = 1;

            int b = 2;

            Console.WriteLine(a + "+" + b + "=" + a + b); //1+2=12

            Console.WriteLine(a + "+" + b + "=" + (a + b)); //1+2=3 <= 괄호 안에 있는게 먼저 실행 됨. (우선순위를 높인다.)


            Console.ReadLine();

        }

    }

}



'공부 > C#' 카테고리의 다른 글

배열  (0) 2016.05.04
데이터 타입  (0) 2016.05.04
string 처리 기본  (0) 2016.05.04
[잡담]C# 공부 첫날 소감  (0) 2016.05.03
정수, 실수 출력  (0) 2016.05.03