0부터 100까지 숫자만 입력받기


int value;  // needed for TryParse
string str; // needed for ReadLine


Console.Write(“0부터 100까지 숫자를 입력하세요: “);
str = Console.ReadLine();
while ((!int.TryParse(str, out value)) || (value < 0 || value > 100))
{
        Console.Write(“다시 0부터 100까지 숫자를 입력하세요: “);
        str = Console.ReadLine();
}
int result = int.Parse(str);
Console.WriteLine(“입력된 숫자=” + result);

ESCAPE 키가 눌린게 아니면 프로그램이 계속 실행되기

    class Program
    {
        static double Add(double a, double b)
        {
            return (a + b);
        }


        static void Main(string[] args)
        {
            do
            {
                Console.Write(“a를 입력하세요: “);
                string str = Console.ReadLine();
                double a;
                bool result = double.TryParse(str, out a);


                Console.Write(“b를 입력하세요: “);
                str = Console.ReadLine();
                double b;
                result = double.TryParse(str, out b);


                double c = Add(a, b);
                Console.WriteLine(“결과는 {0}”, c);


                Console.WriteLine(“다시 하려면 ENTER 키를 누르시고 종료하려면 ESC 키를 누르세요”);
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }
    }

Why need boxing and unboxing

Why do we need boxing and unboxing in C#?
http://stackoverflow.com/questions/2111857/why-do-we-need-boxing-and-unboxing-in-c



    struct Point
    {
        public int x, y;
        public Point(int x, int y)
        {
            this.x = x;
            this.y = y;
        }


        public override string ToString()
        {
            return String.Format(“{0} {1}”, this.x, this.y);
        }
    }


    class Point2
    {
        public int x, y;
        public Point2(int x, int y)
        {
            this.x = x;
            this.y = y;
        }


        public override string ToString()
        {
            return String.Format(“{0} {1}”, this.x, this.y);
        }
    }


    class Program
    {
        static void Print(object o)
        {
            Console.WriteLine(o);
        }


        static void Main(string[] args)
        {
            int x = 4;
            Print(x); // boxing (int=>object)
            double y = 3.2;
            Print(y); // boxing (double=>object)
            char z = ‘n’;
           
Print(z); // boxing (char=>object)


            double e = 2.718281828459045;
            object o1 = e; // boxing (double=>object)
            object o2 = e; // boxing (double=>object)
            Console.WriteLine
(o1 == o2); // False (o1과 o2는 서로 다른 메모리에 데이타 복사본 저장)


            Point p3 = new Point(1, 1);
            Print(p3); // boxing (struct=>object)
            object o3 = p3; // boxing (struct=>object)
            p3.x = 2;
            Console.WriteLine(((Point)o3).x);
// unboxing(object=>struct) o3.x=1 (o3는 박싱된 복사본 p3에의해 데이터 안바뀜)


            Point2 p4 = new Point2(1, 1);
            Print(p4); // boxing 아님
            object o4 = p4; // boxing 아님
            p4.x = 2;
            Console.WriteLine(((Point2)o4).x); // downcasting(object=>Point2 class) o4.x=2 (class는 reference type이므로 o4는 p4에의해 데이터가 바뀜)
        }
    }

Console Class

http://msdn.microsoft.com/en-us/library/system.console.aspx

Console 클래스에는 ReadLine, WriteLine 같은 기본적인 입출력 메서드 외에도 콘솔 관리를 위한 여러 가지 멤버들이 제공된다. 어떤 멤버는 함수처럼 필요할 때 호출할 수 있는 메서드이고 어떤 것은 값을 읽고 쓰는 프로퍼티 형태로 되어 있다.

































멤버


설명


Title


콘솔창의 제목 문자열이다.


BackgroundColor, ForegroundColor


전경색, 배경색의 색상이다.


CursorSize


커서의 높이를 지정한다.


CursorVisible


커서의 보임/숨김을 지정한다.


CursorLeft, CursorTop


커서의 현재 위치이다.


Clear()


화면을 지운다.


Beep()


소리를 낸다.


ResetColor()


디폴트 색상으로 변경한다.


SetCursorPosition(x,y)


커서의 위치를 옮긴다.



class Program
{
  public static void Main()
  {
    Console.Title = “콘솔 테스트”; // 콘솔창의 제목
    Console.BackgroundColor = ConsoleColor.Yellow; // 콘솔창의 배경색
    Console.ForegroundColor = ConsoleColor.Blue; // 콘솔창의 전경색
    Console.Clear(); // 콘솔창 화면을 깨끗이 지움
    Console.Beep(); // 콘솔창에 삑소리를 냄
    Console.WriteLine(“색상을 변경했습니다.”); // 콘솔창에 “색상을 변경했습니다.” 출력
    Console.ReadKey(); // 콘솔창에서 아무키나 입력받길 대기
    Console.ResetColor(); // 콘솔창에서 색상(배경,전경)을 초기화
    Console.SetCursorPosition(10, 10); // (10, 10) 좌표로 커서를 이동
    Console.WriteLine(“디폴트 색상입니다.”); // 콘솔창에 “디폴트 색상입니다.” 출력
    Console.ReadKey(); // 콘솔창에서 아무키나 입력받길 대기
  }
}

체감온도산출식

// 체감온도(℃) = 13.12 + 0.6215ⅹT – 11.37 V0.16 +0.3965 V0.16 ⅹT
// [ T : 기온, V : 풍속(km/h) ]    
public double GetWindChillTemperature(double T, double V)
{
       return (13.12 + 0.6215 * T – 11.37 * Math.Pow(V, 0.16) + 0.3965 * Math.Pow(V, 0.16) * T);
}

Just another Kyoung Shin Park’s Lectures Sites site