[잡담]C# 공부 첫날 소감
//잡담
대학생일 때 C, C++, Java는 기본적으로 많이 건드렸었고
주언어를 Java로 하여 JSP와 연동되는
많은 서버계열 언어들과 프레임워크를 회사에서도 꽤 다루어 본데다가
작년 부터 게임 개발로 돌아서면서 C++쪽을 많이 하여
슬슬 Java같은 언어의 사용법이 C++에 뭍혀 가고 있었는데....
그런데 이제 Unity 개발을 시작하려고
C#에 처음 입문을 하였는데
느낌이 마치... 고향에 돌아와 공기를 마시는 느낌(?) 같았다.
Java와 꽤 비슷하여 c++로만 다룬 몇개월의 늪에서 다시 회생한기분 이다.
개비지컬렉션, 클래스 생성방법, 포인터 없는 것 하며
사용법 대부분이 Java 비스무리하여
C++보다 꽤 쉽다.
훅훅 습득이 된다.
예전부터 C++과 Java 2가지 언어를 알게 되면
나머지 모르는 언어도 쉽게 접근 할 수 있다고 생각하고 있었지만
역시나 그렇다.
쉽다. 간편하다. 새롭지만 낯설고 신기하다.
대부분 아는 내용이기 때문에
이 C#페이지에서는
C++과 차이가 생기는 부분에 대한것을
주로 포스팅을 하자.
int a = 1;
int b = 2;
Console.WriteLine(a + "+" + b + "=" + a + b); //1+2=12
Console.WriteLine(a + "+" + b + "=" + (a + b)); //1+2=3 <= 괄호 안에 있는게 먼저 실행 됨. (우선순위를 높인다.)
//칸수 맞추기
int number = 255;
Console.WriteLine("Number : {0}", number); //십진수 기본
Console.WriteLine("Number : {0,10:D5}", number); //10칸을 공간으로 잡는데 뒤에 5개는 숫자를 채워라(우측정렬)
Console.WriteLine("Number : {0,10}", number); //10칸을 공간으로 잡아 숫자 우측 정렬
Console.WriteLine("Number : {0,-5}|||||{0}", number); //좌측 정렬 5개의 공간 확보
Console.WriteLine("Number : {0:X}", number); // 16진수 출력
Console.WriteLine("Number : {0:X4}", number); // 16진수 4자리 출력하는데 빈 곳은 0으로 처리
Console.WriteLine("Number : {0,4:X}||", number); // 4자리를 확보하고 16진수 출력.우측정렬(||는 자리 표시 위한 것 의미 없음)
Console.WriteLine("Number : {0,-4:X}||", number); // 4자리를 확보하고 16진수 출력.좌측정렬(||는 자리 표시 위한 것 의미 없음)
//실수형 변수
//float f = 1.0f; //float 형
//float f2 = 1.0; //에러 발생 : c++에서는 뒤에 f를 안붙여 줘도 처리 됐지만, c#에서는 타입체크를 까다롭게 해줘야 한다.
//double d = 1.0; //double형
float f = 1.12345f;
double d = 2.12345;
Console.WriteLine("float : {0}, double : {1}", f, d);
Console.WriteLine("float : {0}", f.ToString("F3")); //소수점 3쨰자리까지 출력
//반올림
f = (float)Math.Round(f, 4);
Console.WriteLine("반올림 : {0}", f);
//올림 = 정수
Console.WriteLine("올림 : {0}", Math.Ceiling(f));
//버림 - 정수
Console.WriteLine("버림 : {0}", Math.Floor(f));
'공부 > C#' 카테고리의 다른 글
배열 (0) | 2016.05.04 |
---|---|
데이터 타입 (0) | 2016.05.04 |
string 처리 기본 (0) | 2016.05.04 |
[잡담]C# 공부 첫날 소감 (0) | 2016.05.03 |
C# 첫 경험 (0) | 2016.05.03 |
//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 |