[C#] 다른 네임 스페이스의 부분 클래스


Answers

부분 클래스는 동일한 네임 스페이스와 동일한 어셈블리에서만 가능합니다.

네임 스페이스는 두 개의 다른 어셈블리에있을 수 있지만 부분 클래스는 가질 수 없습니다.

Question

다른 네임 스페이스에 부분 클래스를 만들 수 있습니까? 올바른 것인가? 전의:

class1.cs

namespace name1
{
    public partial class Foo
    {
        Bar1(){
            return 10;
        }
    }
}

class2.cs

namespace name1.name2
{
    public partial class Foo
    {
        Bar2(){
            return 100;
        }
    }
}

main.cs

using name1;
using name1.name2;

namespace mainClass
{
    public class mainClass
    {
        Foo classFoo = new Foo();
        int Count = classFoo.Bar1() + classFoo.Bar2();
        // Will Count = 110?
    }
}

작동 시키려면 어떻게해야합니까? (내 예제가 정확하지 않은 경우)







다음은 부분 클래스를 구현하는 동안 고려해야 할 몇 가지 사항입니다.

  • 부분 클래스의 각 부분에 부분 키워드를 사용하십시오.

  • 부분 클래스의 각 부분의 이름은 동일해야하지만 부분 클래스의 각 부분에 대한 소스 파일 이름은 다를 수 있습니다.

  • 부분 클래스의 모든 부분은 동일한 네임 스페이스에 있어야합니다.

  • 부분 클래스의 각 부분은 동일한 어셈블리 또는 DLL에 있어야합니다. 즉 다른 클래스 라이브러리 프로젝트의 소스 파일에 부분 클래스를 만들 수 없습니다.

  • 부분 클래스의 각 부분은 동일한 액세스 가능성을가집니다. (개인, 공개 또는 보호 된)

  • 부분 클래스에서 클래스 또는 인터페이스를 상속하는 경우 부분 클래스의 모든 부분에서 상속됩니다.

  • 부분 클래스의 일부가 봉인 된 경우 전체 클래스가 봉인됩니다.

  • 부분 클래스의 일부가 abstract 인 경우, 전체 클래스는 추상 클래스로 간주됩니다.