1. Partial νμ
Partial νμ μ ν΄λμ€(Class), ꡬ쑰체(Struct), μΈν°νμ΄μ€(Interface)λ₯Ό μ¬λ¬ νμΌμ μ μν μ μκ² νλ€.
- λ€λ₯Έ νμΌλ‘ λΆν λμ§λ§ λ Όλ¦¬μ μΌλ‘λ νλμ΄κΈ° λλ¬Έμ μ»΄νμΌλ λ λΆν λ νμΌμ΄ κ²°ν©λλ€.
- μ¬μ©νλ μ΄μ λ Code Generatorκ° λ§λ μ½λμ μ¬μ©μκ° λ§λ μ½λλ₯Ό λΆλ¦¬νκΈ° μν¨μ΄λ€. κ°λ°μμκ² ν¬μ»€μ€ ν΄μΌ νλ μ½λλ₯Ό λΆλ¦¬ν΄ μ€λ€λ μ μμ ν¬κ² λμμ΄ λλ€.
μλ₯Ό λ€μ΄, μνΌμμλ Form UI λμμΈκ³Ό κ΄λ ¨λ Form1.designer.cs νμΌκ³Ό μ¬μ©μκ° μ°λ Form1.cs νμΌμ λμΌν ν΄λμ€λͺ μ λκ³ μ΄λ₯Ό partialλ‘ μ μΈνλλ°, μ»΄νμΌλ¬λ λμ€μ μ΄λ₯Ό ν©μ³ νλμ ν΄λμ€λ‘ λ§λ λ€. λν, ASP.NET μΉ νΌμμλ νλμ μΉνμ΄μ§λ₯Ό λ§λ€ λ, page1.aspx, page1.aspx.designer.cs, page1.aspx.csμ κ°μ΄ 3κ°μ νμΌμ λ§λλλ°, XMLμΈ page1.aspx μ΄μΈμ .cs νμΌ μμλ μνΌκ³Ό λ§μ°¬κ°μ§κ³ partial ν΄λμ€λ₯Ό μ¬μ©νκ³ μλ€. μΉ κ°λ°μλ Code BehindλΌ λΆλ¦¬λ page1.aspx.cs νμΌμμ μ£Όλ‘ μμ νλ€.
1) ꡬν
- Partial ν€μλλ₯Ό class, struct, interface ν€μλ λ°λ‘ μμ μμΉνμ¬ μ μνλ€.
- λΆν λ νμΌμ λͺ¨λ λμΌν μ κ·Ό μ§μ μλ₯Ό κ°μ ΈμΌ νλ€.
// 1. Partial Class (3κ°λ‘ λΆλ¦¬)
partial class Class1
{
public void Run() { }
}
partial class Class1
{
public void Get() { }
}
partial class Class1
{
public void Put() { }
}
// 2. Partial Struct
partial struct Struct1
{
public int ID;
}
partial struct Struct1
{
public string Name;
public Struct1(int id, string name)
{
this.ID = id;
this.Name = name;
}
}
// 3. Partial Interface
partial interface IDoable
{
string Name{ get; set; }
}
partial interface IDoable
{
void Do();
}
// IDoable μΈν°νμ΄μ€λ₯Ό ꡬν
public class DoClass : IDoable
{
public string Name{ get; set; }
public void Do()
{
}
}
2. Partial λ©μλ
C# 2.0μμ μκ°λ Partial νμ μ΄μΈμ μλ‘μ΄ Partial κΈ°λ₯μΈ Partial λ©μλλ₯Ό C# 3.0μ μΆκ°νμλ€. μ¦, partial κΈ°λ₯μ νμ μ΄ μλ λ©μλμ μ μ©ν Partial λ©μλ κΈ°λ₯μ΄λ€.
1) ꡬν
- Partial νμ μμ μ¬μ© κ°λ₯νλ€.
- μ κ·Ό μ νμκ° Private μ΄μ΄μΌ νλ€.
- λ¦¬ν΄ κ°μ΄ μμ΄μΌ(void) νλ€.
public partial class Class2
{
public void Run()
{
DoThis();
}
// 쑰건 1: private only
// 쑰건 2: void return only
partial void DoThis();
}
public partial class Class2
{
partial void DoThis()
{
Log(DateTime.Now);
}
}
λ§μ½ λ λ²μ§Έ μ€μ λ©μλ ꡬνμ΄ μλ΅λκ³ λ©μλ μ μΈλ§ μκ² λλ€λ©΄, C# μ»΄νμΌλ¬λ μ»΄νμΌ μ DoThis() μ 체λ₯Ό μμ λ²λ¦°λ€. μ¦, νΉμ λ©μλκ° λ€λ₯Έ νμΌμμ ꡬνλμλκ°μ μ¬λΆμ λ°λΌ λ©μλ μ 체λ₯Ό μλ΅ν μ μλ κΈ°λ₯μ μ 곡νλ€.