aynı isimli fonksiyonları farklı classlardan nasıl çağırırım (vb , c#)

Kodla Büyü

sertokus

Süper Üye
Süper Üye
Mesajlar
2,350
Merhaba arkadaşlar.
Uzun zamandır kafamı karıştıran bir problemim var.

Elimde 3 adet class var diyelim. Bu klaslardan birtanesin ismi Ana_Menu olsun.
Bir diğer classın ismi Student, bir diğeri de Teacher olsun. Ve bunlar bir comboxta kayıtlı.
Student ve Teacher classları içinde benzer fonksiyon isimleri var. Bu fonksiyon ve ya sub isimlerinden biride de info olsun. Ana_Menu sayfasından infoyu combobox1 de hangi ismi ile seçili ise tek bir kerede çağırmak istiyorum. Aşağıdaki örnekteki gibi.

Bu şekilde olamayacağını biliyorum. Sadace anlaşılsın diye yazıyorum. Comboboxtaki değere göre nasıl ilgili sınıftaki info yu çağırabilirim?

Class Ana_Menu

Sub Manage()
................
.....................
ComboBox1.Text.info() 'Bu Kısıma yazılacak kodlar nelerdir?
......................
.......................
End Sub
End class

class Student
sub info()
...........
end sub
end class


class Teacher
sub info()
......................
end sub
end class
 
Son düzenleme:
Class dan bir nesne üreteceksin. Daha sonra o nesne ilgili sınıfın fonksiyonunu kullanacak.

Ogrenci1 = Student()
Ogrenci1.info gibi.
 
Class dan bir nesne üreteceksin. Daha sonra o nesne ilgili sınıfın fonksiyonunu kullanacak.

Ogrenci1 = Student()
Ogrenci1.info gibi.
Cevabınız için teşekkür ederim hocam.
Amacım Student.info, Teacher.info, father.info, mother.info gibi combobox taki o an hangi veri varsa onun info sunu çalıştırmak istiyorum
 
Ne dediğini anlamadım ama comboboxtaki seçilen verinin değerine göre if deyimiyle gerekli classı ve fonksiyonu çağıramıyor musun? Ne yapmak istediğini tam olarak anlayamadım.
 
Anladığım kadarıyla açılır listenizde tanımladığınız sınıfların isimleri string olarak var. Seçili sınıfın adını listeden okuduktan sonra okuduğunuz o string snıf adını dinamik olarak nesne oluşturmak ya da o sınıftaki bir metodu çağırmak için kullanmak istiyorsunuz.
Bunun için en basitinden if yapısı kurabilirsiniz. Eğer teacher ise teacher.info()'yu çalıştır gibi.

Bunun dışında string olarak elinizde olan bir sınıf adını dinamik olarak kullanmak için C#'da CreateInstance motudunu bir inceleyin.
https://stackoverflow.com/questions...of-a-class-having-its-name-in-string-variable

Bir sınıftaki metodu çağırmak için o sınıftan bir nesne oluşturduktan sonra nesne üzerinden çağırabilirsiniz. nesne.info() gibi.
Nesne oluşturmadan metot çağırabilmek için ise static bir sınıf tanımlamalısınız. Static sınıfın metodunu duğrudan nesne oluşturmadan çağırabilirsiniz. teacher.info() gibi.

Bu noktada aşağıdaki linki bir inceleyiniz.
https://stackoverflow.com/questions...given-its-type-name-and-method-names-as-strin
 
Son düzenleme:
Anladığım kadarıyla açılır listenizde tanımladığınız sınıfların isimleri string olarak var. Seçili sınıfın adını listeden okuduktan sonra okuduğunuz o string snıf adını dinamik olarak nesne oluşturmak ya da o sınıftaki bir metodu çağırmak için kullanmak istiyorsunuz.
Bunun için en basitinden if yapısı kurabilirsiniz. Eğer teacher ise teacher.info()'yu çalıştır gibi.

Bunun dışında string olarak elinizde olan bir sınıf adını dinamik olarak kullanmak için C#'da CreateInstance motudunu bir inceleyin.
https://stackoverflow.com/questions...of-a-class-having-its-name-in-string-variable

Bir sınıftaki metodu çağırmak için o sınıftan bir nesne oluşturduktan sonra nesne üzerinden çağırabilirsiniz. nesne.info() gibi.
Nesne oluşturmadan metot çağırabilmek için ise static bir sınıf tanımlamalısınız. Static sınıfın metodunu duğrudan nesne oluşturmadan çağırabilirsiniz. teacher.info() gibi.

Bu noktada aşağıdaki linki bir inceleyiniz.
https://stackoverflow.com/questions...given-its-type-name-and-method-names-as-strin
Hocam çok teşekkür ederim.
string olan class ismini object haline dönüştürmeyi sayenizde başardım. Beni büyük bir kod yığınından kurtardınız.
 
Geri
Üst