Çözüldü C# Kodların farklı çalışmasının nedeni nedir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Crypto Guard

Hectopat
Katılım
22 Temmuz 2019
Mesajlar
1.709
Makaleler
2
Çözümler
22
ThemeClass adında bir sınıfım var ve içinde uygulamanın tema rengini tutuyorum.
Burasında sorun yok fakat nedenini anlamadığım bir şekilde nesne yaratma işlemini Load'ın içinde yaptığımda sorun olmuyor.

C#:
private void MainMenu_Load(object sender, EventArgs e)
{
    ThemeClass themeClass = new ThemeClass();
    themeClass.Metod();
}

Fakat gidip kodumu bu şekilde tanımlarsam çalışmıyor. Bunun tam olarak nedeni nedir?

C#:
 ThemeClass themeClass = new ThemeClass();

 private void MainMenu_Load(object sender, EventArgs e)
 {
     themeClass.Metod();
 }
 
Çözüm
C#'ta global alanlar ilk preload işleminde direkt olarak içeriğe etki etmez.

O yüzden preload, yani load işleminde oluşturulup çağrılması gerekir.
@Crypto Guard nesne yönelimli programlama yaparken kurallar vardır, buna uygun yapılması gerekir.

Özellikle tema gibi şeyler, Windows geliştirme ortamında direkt etki etme konusunda problemli.

C# Form Win32 kullandığı için ve Win32 kitaplığı eski olduğu için direkt olarak uygulamıyor işlemi.
Modern mimarilerde oradaki her iki kod örneğini de çalışmaktadır.
 
@Crypto Guard nesne yönelimli programlama yaparken kurallar vardır, buna uygun yapılması gerekir.

Özellikle tema gibi şeyler, Windows geliştirme ortamında direkt etki etme konusunda problemli.

C# Form Win32 kullandığı için ve Win32 kitaplığı eski olduğu için direkt olarak uygulamıyor işlemi.
Modern mimarilerde oradaki her iki kod örneğini de çalışmaktadır.
Modern mimari örneğine UWP ve WinUI dahil edilebilir mi?
 

Geri
Yukarı