Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Gerald Versluis
13m 26s
Częściowe klasy w C# istnieją od pewnego czasu, a ich celem jest organizacja i zarządzanie kodem. W swoim filmie, "Partial Classes in C# - What they are for, how to use them, and more", Tim Corey bada, czym są częściowe klasy, jak działają i kiedy ich używać.
Ten artykuł będzie koncentrować się na dostarczeniu dogłębnego zrozumienia częściowych klas w C#, wyjaśniając, jak działają, jakie mają ograniczenia i rzeczywiste przypadki użycia, zwłaszcza w środowiskach takich jak aplikacje Windows Forms. Podążając za wskazówkami Tima, programiści mogą dowiedzieć się, jak wykorzystać częściowe klasy do poprawy organizacji kodu i jego łatwości utrzymania.
W C# koncepcja częściowych klas pozwala podzielić definicję jednej klasy na wiele części, rozłożonych na różne pliki lub bloki kodu. Ta funkcjonalność jest głównie używana do zarządzania dużymi lub złożonymi klasami, poprawiając ich łatwość utrzymania i umożliwiając lepszą współpracę między większą liczbą programistów. Korzystając ze słowa kluczowego partial, programiści mogą rozbijać kod logiki biznesowej, definicje kontrolerów interfejsu użytkownika i inne skomplikowane komponenty na zarządzalne fragmenty.
Klasa częściowa odnosi się zasadniczo do definicji klasy, która jest podzielona na więcej niż jeden plik źródłowy. Wszystkie te części są łączone podczas kompilacji, tworząc kompletną klasę, która zachowuje się, jakby była napisana w jednym pliku. Ta potężna funkcja może być niezwykle przydatna przy pracy z automatycznie generowanym kodem źródłowym, ponieważ umożliwia separację ręcznie pisanej logiki od kodu generowanego przez narzędzia takie jak LINQ to SQL lub kod generowany przez projektanta.
Tim o (0:00) wprowadza klasy częściowe i wyjaśnia, że celem filmu jest szybkie zrozumienie, czym są częściowe klasy, jak działają i kiedy ich używać.
O godzinie (0:25), Tim rozpoczyna tworzenie nowego pliku o nazwie Demo.cs w projekcie aplikacji konsolowej. Użytkownik używa słowa kluczowego partial, aby uczynić klasę częściową. Pozwala to na podział klasy na wiele plików.
// Demo.cs
public partial class Demo
{
public void FromDemo()
{
Console.WriteLine("This is from Demo");
}
}
// OtherDemo.cs
public partial class Demo
{
public void FromOtherDemoFile()
{
Console.WriteLine("This is from OtherDemo file");
}
}' Demo.vb
Partial Public Class Demo
Public Sub FromDemo()
Console.WriteLine("This is from Demo")
End Sub
End Class
' OtherDemo.vb
Partial Public Class Demo
Public Sub FromOtherDemoFile()
Console.WriteLine("This is from OtherDemo file")
End Sub
End ClassTim wyjaśnia, że chociaż nazwy plików są różne, nazwy klas muszą się zgadzać, aby były traktowane jako części tej samej klasy częściowej. Podczas kompilacji, kompilator C# łączy te definicje klas częściowych w jedną klasę.
Tim o godzinie (3:01) demonstruje, jak utworzyć i używać klasy częściowej w pliku Program.cs.
class Program
{
static void Main(string[] args)
{
Demo demo = new Demo();
demo.FromDemo();
demo.FromOtherDemoFile();
}
}Module Program
Sub Main(args As String())
Dim demo As New Demo()
demo.FromDemo()
demo.FromOtherDemoFile()
End Sub
End ModuleTen kod pokazuje, że metody zarówno z Demo.cs, jak i OtherDemo.cs są dostępne przez pojedynczą instancję klasy Demo.
Tim o (4:01) wyjaśnia, że interfejsy zaimplementowane w jednej części klasy częściowej mają zastosowanie do całej klasy. Na przykład, jeśli jedna część klasy częściowej implementuje IDisposable, to odnosi się do całej klasy.
// Demo.cs
public partial class Demo : IDisposable
{
public void Dispose()
{
Console.WriteLine("Dispose method called");
}
}' Demo.vb
Public Partial Class Demo
Implements IDisposable
Public Sub Dispose() Implements IDisposable.Dispose
Console.WriteLine("Dispose method called")
End Sub
End ClassTim o (5:02) zwraca uwagę na kilka ograniczeń klas częściowych. Na przykład, wszystkie części klasy częściowej muszą mieć te same modyfikatory dostępu. Nie można mieć jednej części oznaczonej jako public, a innej jako internal lub private.
Tim o (5:29) omawia praktyczne zastosowanie klas częściowych, szczególnie w aplikacjach Windows Forms. Pokazuje, jak kod wygenerowany przez projektanta Windows Forms używa klas częściowych do oddzielenia kodu automatycznie wygenerowanego od kodu pisanego przez użytkownika.
// Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
// Form1.Designer.cs
partial class Form1
{
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.ClientSize = new System.Drawing.Size(800, 450);
this.Name = "Form1";
this.ResumeLayout(false);
}
}' Form1.vb
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
End Class
' Form1.Designer.vb
Partial Class Form1
Private Sub InitializeComponent()
Me.SuspendLayout()
'
' Form1
'
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Name = "Form1"
Me.ResumeLayout(False)
End Sub
End ClassTo rozdzielenie pozwala projektantowi zarządzać kodem układu, podczas gdy użytkownik może skupić się na logice aplikacji w głównej klasie formularza.
Tim kończy, omawiając typowe scenariusze, w których klasy częściowe są przydatne. Są one powszechnie używane w sytuacjach, gdy kod jest automatycznie generowany lub w dużych projektach, które wymagają czystego rozdzielenia zadań. Jednym z przykładów jest kod wygenerowany automatycznie, taki jak kod projektanta Windows Forms, gdzie oddzielenie kodu układu od logiki aplikacji zapobiega konfliktom i umożliwia łatwiejszą konserwację.
Wspomina również, że chociaż klasy częściowe mogą być pomocne w niektórych sytuacjach, nie są one często używane w codziennym programowaniu.
Tim na końcu podsumowuje, podkreślając, że chociaż klasy częściowe mogą być użyteczne, to nie są one często potrzebne. Są one najbardziej korzystne w scenariuszach obejmujących generowanie kodu lub podczas pracy z dużymi, automatycznie generowanymi bazami kodowymi, jak w aplikacjach Windows Forms.
Film Tima Corey'a wideo na temat klas częściowych oferuje jasny i wnikliwy przegląd tej funkcji C#, pokazując, jak klasy częściowe mogą pomóc w efektywnej organizacji i zarządzaniu kodem. Poprzez swoje praktyczne przykłady, podkreśla on zalety podziału klasy na wiele plików i wyjaśnia, kiedy klasy częściowe są najbardziej przydatne, na przykład w sytuacjach z automatycznie generowanym kodem lub dużymi aplikacjami.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy