ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클래스관련 const 상수 readonly 구조체관련 GetType() , is as
    .NET/C# Basic 2008. 10. 15. 14:48
    반응형
    using System;

    class Sizes
    {
    public const int Medium = 100;  // 상수로써 사용되는것 const 항상동일한수 
    public const int Large = 105; // const 라고 붙은것은 별도의 객체생성없이도 가능
    public const int XLarge = 110;
    }

    class Shirt
    {
    public static void Main()
    {
    while(true)
    {
    string s;
    Console.WriteLine("치수 기호를 입력하세요. (M)edium (L)arge (X)Large (q)uit");

    s = Console.ReadLine();
    if(s == "q") break;

    switch(s)
    {
    case "M" :
    Console.WriteLine(Sizes.Medium);  //객체선언없이 가능
    break;
    case "L" :
    Console.WriteLine(Sizes.Large);
    break;
    case "X" :
    Console.WriteLine(Sizes.XLarge);
    break;
    default : 
    Console.WriteLine("저희는 그런 치수를 가지고 있지 않습니다.");
    break;
    }

    }
    }
    }


    ///////////////////  / 읽기전용 readonly
    using System;

    class Sizes
    {
    public readonly int Medium = 100; // 읽기전용 readonly
    public readonly int Large = 105; // 변수 초기화부분 
    public readonly int XLarge; //

    public Sizes()
    {
    this.XLarge = 110; // 생성자의 경우는 가능
    }
    }

    class Shirt
    {
    public static void Main()
    {
    Sizes a = new Sizes();

    Console.WriteLine("Medium : {0} ", a.Medium);
    Console.WriteLine("Large : {0} ", a.Large);
    Console.WriteLine("XLarge : {0}", a.XLarge);
    }
    }



    ///////////////////////////////////



    public struct Point //구조체
    {
    public int x;
    public int y;
    //생성자
    public Point(int x,int y)
    {
    this.x = x;
    this.y = y;
    }
    }

    class Structure
    {
    public static void Main()
    {
    //new를 이용해 생성자를 호출한다.
    Point p = new Point(30, 70); // 구조체 안에있는 맴버를 불러올때
    Console.WriteLine("I'm at Heap!");
    Console.WriteLine("Point.x : {0}, Point.y : {1}", p.x, p.y);

    //new 없이 객체를 선언하면 모든 멤버를 초기화 해줘야 합니다.
    Point s; // 구조체 선언
    s.x = 20; // 초기화해주어야한다
    s.y = -49; //
    Console.WriteLine("I'm at Stack!");
    Console.WriteLine("Point.x : {0}, Point.y : {1}", s.x, s.y);
    }
    }





    using System;

    interface IPrinter
    {
    void Print();
    }

    class Printer : IPrinter
    {
    public void Print()
    {
    Console.WriteLine("난 프린터라오.");
    }
    }

    struct Paper
    {
    }

    class WhoamI
    {
    public static void Main()
    {
    IPrinter p = new Printer();
    p.Print();
    Console.WriteLine("객체 p는 누구일까요? : {0}", p.GetType());
    Paper sheet = new Paper();
    Console.WriteLine("객체 sheet는 누구일까요? : {0}", sheet.GetType());

    int i = 3;
    Console.WriteLine("객체 i는 누구일까요? : {0}", i.GetType());
    }
    }


    [5.클래스 관련예제 \ Is.cs]
    using System;

    interface IMammal
    {
    void Walk();
    }

    class Cat : IMammal
    {
    public void Walk()
    {
    Console.WriteLine("고양이과는 걸을 수 있습니다.");
    }
    }

    class Lion : Cat, IMammal // 
    {
    public new void  Walk() // new 키워드로 재정의
    {
    Console.WriteLine("사자는 걸을 수 있습니다.");
    }
    }

    class WhoamI
    {
    public static void Main()
    {
    IMammal simba = new Lion(); //
    Cat leo = new Cat();

    Console.WriteLine("Is Simba a Cat? : {0}", simba is Cat);
    Console.WriteLine("Is leo a Lion? : {0}", leo is Lion);
    }
    }



    [5.클래스 관련예제 \ As.cs]
    using System;

    interface IMammal
    {
    void Walk();
    }

    class Cat : IMammal
    {
    public void Walk()
    {
    Console.WriteLine("고양이과는 걸을 수 있습니다.");
    }
    }

    class Lion : Cat, IMammal
    {
    public new void  Walk()
    {
    Console.WriteLine("사자는 걸을 수 있습니다.");
    }
    }

    class WhoamI
    {
    public static void Main()
    {
    IMammal simba = new Lion();
    object obj = simba as Cat; //
    if( obj != null)
    Console.WriteLine("Is Simba a Cat? : {0}", obj.GetType());
    else
    Console.WriteLine("저는 고양이가 아닌디유...");

    Cat leo = new Cat();
    object obj2 = leo as Lion;
    if( obj2 != null)
    Console.WriteLine("Is leo a Lion? : {0}", obj2.GetType());
    else
    Console.WriteLine("저는 사자가 아닌디유...");
    }
    }






    반응형

    댓글

Designed by Tistory.