레이블이 partialmethod인 게시물을 표시합니다. 모든 게시물 표시
레이블이 partialmethod인 게시물을 표시합니다. 모든 게시물 표시

2022년 1월 28일 금요일

C# 부분클래스, 부분메소드, partial class partial method, C#학원, C#교육, C#동영상, 닷넷교육, 닷넷학원, 닷넷동영상

 C# 부분클래스, 부분메소드, partial class  partial method, C#학원, C#교육, C#동영상, 닷넷교육, 닷넷학원, 닷넷동영상





https://www.youtube.com/watch?v=eTOLfYyCnlE&list=PLxU-iZCqT52DJyR6gqJy0MCL8RiTVXdos&index=12 

https://www.youtube.com/watch?v=zBOKgEgBINI&list=PLxU-iZCqT52DJyR6gqJy0MCL8RiTVXdos&index=11



https://www.youtube.com/watch?v=LrDRiOEeSSI&list=PLxU-iZCqT52DJyR6gqJy0MCL8RiTVXdos&index=10 



C# partial 클래스

 

  • C# 2.0 이상에서 partial class는 여러 개의 파일에 하나의 클래스를 분리하여 만들거나 하나의 파일에 여러 클래스를 만들 수 있는 방법을 제공한다. 
  • 윈폼등에서 폼을 생성하면 기본적으로 자동으로 만들어 주는 개발자가 손댈 필요가 없는 디자인 요소의 파일(Form1.Designer.cs) 코드와 개발자가 작성하는 C# 코드(Form1.cs)를 분리하여 C# 개발자는 C# 비하인드 코드 개발에 집중할 수 있도록 해주며, 컴파일러가 분리된 partial class를 하나의 클래스로 합쳐준다.
  • 대형 프로젝트를 진행하는 경우 클래스를 개별 파일로 분할하면 여러 프로그래머가 동시에 작업을 수행할 수 있다.

 


하나의 파일에 Emp 클래스를 나누어서 정의하는 경우


using System;

namespace ConsoleApplication7

{   

    partial class Emp

    {

        public void gotoOffice() 

        {

            Console.WriteLine("출근합니다.");

        }

    }


    partial class Emp

    {

        public void Work() 

        {

            Console.WriteLine("일합니다.");

        }

    }


    partial class Emp

    {

        public void getoffWork() 

        {

            Console.WriteLine("퇴근합니다.");

        }

    }


    class MainTest

    {

        static void Main()

        {

            Emp e = new Emp();

            e.gotoOffice();

            e.Work();

            e.getoffWork();

        }

    }

}


//------------------------------------------------------


서로 다른 파일에 Emp 클래스를 나누어서 정의하는 경우


[Program.cs]

using System;

namespace ConsoleApplication2

{

    partial class Emp

    {

        public int id;

        public string name;

    }

    class Program

    {

        static void Main()

        {

            Emp e1 = new Emp();

            e1.id = 1; e1.name = "1길동";

            Console.WriteLine(e1);

            Console.WriteLine(e1.ToString());


            Emp e2 = new Emp()

            {

                id = 2,

                name = "2길동"

            };

            Console.WriteLine(e2);

        }

    }

}


[Program2.cs]

using System;

namespace ConsoleApplication2

{

    partial class Emp

    {

        public override String ToString()

        {

            return "[사원]id=" + id + ",name=" + name;

        }

    }

}




C# partial 메소드

 

  • partial 클래스의 한쪽(추상클래스)에서는 메소드의 선언만 하고, 다른쪽 partial 클래스(구현 클래스)에서 메소드를 구현할 수 있다.  만약 개발자가 구현을 하지 않는다면 컴파일러는 컴파일 시점에 해당 partial 메소드 빼고 컴파일 한다.
  • partial 메소드를 작성하기 위해서는 partial로 메소드가 시작되어야 하며, 선언과 정의 타입이 일치해야하며, void를 리턴하도록 해야 하며, out 매개변수, virtual, override, sealed등이 없으며,  접근 지정자는 없다(private이 기본).




namespace PartialTest

{

    partial class Hello

    {

        public string name = "";

        public Hello()

        {

            SayHello("홍길동");

        }

        partial void SayHello(string name);

    }


    partial class Hello

    {          

        partial void SayHello(string name)

        {

            this.name = name;

        }

    }


    class Test

    {

        static void Main()

        {

            Hello h = new Hello();

            Console.WriteLine("Hello ~ " + h.name);            

        }

    }

}





#partialclass, #partialmethod, #partial클래스, #partial메소드, #닷넷교육, #닷넷학원, #닷넷강의, #시샵동영상, #시샵교육, #시샵학원, partialclass, partialmethod, partial클래스, partial메소드, 닷넷교육, 닷넷학원, 닷넷강의, 시샵동영상, 시샵교육, 시샵학원, 

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...