static void Main(string[] args) { DortIslem dortIslem = new DortIslem(2, 3); Console.WriteLine(dortIslem.Topla2()); Console.WriteLine(dortIslem.Topla(5, 4)); Console.ReadKey(); }
private static void NormalInstance() { DortIslem dortIslem = new DortIslem(1, 2); Console.WriteLine("Cons Toplam : " + dortIslem.Topla2()); Console.WriteLine("Cons Carpim : " + dortIslem.Carp2()); Console.WriteLine("Param Toplam : " + dortIslem.Topla(2, 3)); Console.WriteLine("Param Carpim : " + dortIslem.Carp(3, 4)); }
static void Main(string[] args) { //DortIslem dortIslem = new DortIslem(2, 3); //Console.WriteLine( dortIslem.Topla2()); //Console.WriteLine( dortIslem.Topla(3,4)); var tip = typeof(DortIslem); // Bütün tipleri atayabildiğimiz bir nesnedir. // bu bir instance değil. // Benim çalışacağım bir tip var ve o DortIslem'dir diyoruz. DortIslem dortIslem = (DortIslem)Activator.CreateInstance(tip, 6, 7); // Neyin insantecsini oluşturmak istiyoruz??? aslında kod içerisinde // yaptığımız new işlemini çalışma anında yapıyoruz. gelen tipe göre gerçeleştirmiş oluyoruz. Console.WriteLine(dortIslem.Topla(4, 5)); // mesela ben bir şey yapacağım ama bunun kodlama yaparken toplama olup olmadığını bilmiyorum Console.WriteLine(dortIslem.Topla2()); // Reflection ile instance oluşturduğumuzd aonun methodunu da çalıştırabiliyoruz. // şöyle ki var instance = Activator.CreateInstance(tip, 6, 5); MethodInfo methodInfon = instance.GetType().GetMethod("Topla2"); Console.WriteLine(methodInfon.Invoke(instance, null)); // GetMethod dediğim zaman, method bilgisine ulaşıyor. Invoke et dediğimizde // Bu methodu neresi için çalıştıracak hususuna gelirsek içerisine instance yazıyor. Burada ki null parametresiz olduğunu gösterir. // GetMethod ile istenilen methoda ulaşılıyor. İnvoke ile çalıştırıyor. // bir tipin methoduna ulaşabilirsiz istersekte onu çalıştırabiliriz. // methodInfon.Invoke(instance, null); burası bir sonuç döndürdüğü için ekrana yazdralım. // üst satırda '35' te method bilgisi topluyoruz instance ile bağı kaybediyoruz. // o methodinfoya, topa2adlı infoy çalıştır gibi bilgi vermiş oluyoruz. Console.WriteLine("----------------------"); var metodlar = tip.GetMethods(); // Bu yazılan ifadeyle, bu classın' sahip olduğu methodlar geldi foreach (var info in metodlar) { Console.WriteLine("Metod adı: {0}", info.Name); // Console.WriteLine("Metod adı: {0}", info.Name); Bununla methodların İSİMLERİNE. foreach (var parameterInfo in info.GetParameters()) { Console.WriteLine("Parametre: {0}", parameterInfo.Name); // Console.WriteLine("Metod adı: {0}", info.GetParameters()); MEthodun parametrelerine } // Burada, parametrelerine ulaşabildiğim gibi Attributelerine de ulaşabilirim. foreach (var attribute in info.GetCustomAttributes()) { Console.WriteLine("Attribute Name : {0}", attribute.GetType().Name); // varsa eğer ekrana yazacak } } Console.ReadLine(); }
private static void Reflection() { var tip = typeof(DortIslem); DortIslem dortIslem = (DortIslem)Activator.CreateInstance(tip, 1, 2); Console.WriteLine("Cons Toplam : " + dortIslem.Topla2()); Console.WriteLine("Cons Carpim : " + dortIslem.Carp2()); Console.WriteLine("Param Toplam : " + dortIslem.Topla(2, 3)); Console.WriteLine("Param Carpim : " + dortIslem.Carp(3, 4)); }
private static void PART1() { // DortIslem dortIslem = new DortIslem(2,3); // Console.WriteLine(dortIslem.Topla2()); // Console.Write(dortIslem.Topla(3,4)); var tip = typeof(DortIslem); DortIslem dortIslem = (DortIslem)Activator.CreateInstance(tip, 6, 7); // bununla bu aynı şey --> DortIslem dortIslem = new DortIslem(2,3); Console.WriteLine(dortIslem.Topla(4, 5)); Console.WriteLine(dortIslem.Topla2()); }
static void Main(string[] args) { //DortIslem dislem =new DortIslem(2,3); //Console.WriteLine( dislem.Topla2()); //Console.WriteLine(dislem.Topla(3,4)) ; var tip = typeof(DortIslem); DortIslem dortIslem = (DortIslem)Activator.CreateInstance(tip, 6, 7); // DortIslem dislem =new DortIslem(2,3); aynı şey ama runtime Console.WriteLine(dortIslem.Topla(4, 5)); Console.WriteLine(dortIslem.Topla2()); Console.ReadLine(); }
static void Main(string[] args) { //DortIslem dortIslem = new DortIslem(2, 3); //Console.WriteLine(dortIslem.Topla2()); //Console.WriteLine(dortIslem.Topla(3, 4)); var type = typeof(DortIslem); // DortIslem dortIslem = (DortIslem)Activator.CreateInstance(type, 6, 7); // DortIslem dortIslem = new DortIslem(2, 3); aynı şey. Activator.CreateInstance() obje döndürür. Console.WriteLine(dortIslem.Topla2()); Console.WriteLine(dortIslem.Topla(4, 5)); Console.ReadLine(); }
static void Main(string[] args) { DortIslem dortIslem = new DortIslem(2, 3); Console.WriteLine(dortIslem.Topla2()); Console.WriteLine(dortIslem.Topla(3, 4)); var type = typeof(DortIslem); DortIslem dortIslemReflection = (DortIslem)Activator.CreateInstance(type, 6, 7); // çalışma anında gelen tipe göre 13 satırdaki işlem yapılır Console.WriteLine(dortIslemReflection.Topla(4, 5)); Console.WriteLine(dortIslemReflection.Topla2()); var instance = Activator.CreateInstance(type, 6, 5); Console.WriteLine(instance.GetType().GetMethod("Topla2").Invoke(instance, null)); MethodInfo methodInfo = instance.GetType().GetMethod("Topla2"); Console.WriteLine(methodInfo.Invoke(instance, null)); var metodlar = type.GetMethods(); foreach (var info in metodlar) { Console.WriteLine("Metod adi : {0}", info.Name); foreach (var parameterInfo in info.GetParameters()) { Console.WriteLine(parameterInfo.Name); } foreach (var attribute in info.GetCustomAttributes()) { Console.WriteLine("Attribute Name : {0}", attribute.GetType().Name); } } Console.ReadLine(); }
static void Main(string[] args) { DortIslem dortislem = new DortIslem(4, 5); DortIslem dortislemctr = new DortIslem(); Console.WriteLine(dortislemctr.Carp(2, 4)); Console.WriteLine(dortislem.Topla2()); var tip = typeof(DortIslem); var instance = (DortIslem)Activator.CreateInstance(tip, 3, 3); instance.Carp(2, 3); instance.Topla(2, 2); MethodInfo methodInfo = instance.GetType().GetMethod("Topla2"); Console.WriteLine(methodInfo.Invoke(instance, null)); Console.WriteLine("--------------------------------------"); var methods = instance.GetType().GetMethods(); foreach (var method in methods) { Console.WriteLine("DortIslem Method : {0}", method.Name); var parameters = method.GetParameters(); foreach (var parameter in parameters) { Console.WriteLine("Parameters : {0}", parameter.Name); } var attributes = method.GetCustomAttributes(); foreach (var attribute in attributes) { Console.WriteLine("Attributes : {0}", attribute.GetType().Name); } } Console.ReadLine(); }
static void Main(string[] args) { //DortIslem dortIslem = new DortIslem(2, 3); //Console.WriteLine(dortIslem.Topla2()); ////topla 2 ye değer vermiyoruz çünkü ctordaki değerlerle çalışıyor ////AMA TOPLA metotunda bizden değer istiyor //Console.WriteLine(dortIslem.Topla(3, 4)); var type = typeof(DortIslem); //reflection ile benim çalışacağım tip dortıslem /* Activator.CreateInstance(type); */ //DortIslem dortIslem = new DortIslem(2, 3); Aynı şey, gelen tip ne ise onu instance et DortIslem dortIslem = (DortIslem)Activator.CreateInstance(type, 6, 7); //OBJE DÖNDÜRÜR ama biz dortısleme aktarmaya çalışıyoruz o yüzden Cast yapmalıyız //parametrilisini kullanmak istediğimizde dortIslem.Topla(4, 5); dortIslem.Topla2(); var instance = Activator.CreateInstance(type, 6, 7); MethodInfo methodInfo = instance.GetType().GetMethod("Topla2"); Console.WriteLine(methodInfo.Invoke(instance, null));//getmethod istedeiğimiz metota ulaştık invoke ile çalıştırdık //hangi örneğin topla2 sini çalıştırayım Console.WriteLine("-----------------------------------------"); var metotlar = type.GetMethods(); foreach (var info in metotlar) { Console.WriteLine("metot adı : {0} ", info.Name); foreach (var parametre in info.GetParameters()) { Console.WriteLine("parametre : {0} ", parametre.Name); } foreach (var attribute in info.GetCustomAttributes()) { Console.WriteLine("Attribute : {0} ", attribute.GetType().Name); } } }
static void Main(string[] args) { var tip = typeof(DortIslem); //tip belirlemek için kullanılan bir yöntem. DortIslem dortIslem = (DortIslem)Activator.CreateInstance(tip, 3, 4); //Parametre olarak gönderilen tipte bir nesne oluşturuldu. Console.WriteLine(dortIslem.Topla(5, 7)); //oluşturulan nesnenin bir metodu kullanıldı. dortIslem.Topla2(); var instance = Activator.CreateInstance(tip, 7, 8); MethodInfo methodInfo = instance.GetType().GetMethod("Topla2"); // oluşturulan instance in çağırılan metodun bilgisi aktarıldı. Console.WriteLine(methodInfo.Invoke(instance, null)); //aktarılan metot bilgisine göre o metot çalıştırıldı. ve parametleri gönderildi. Console.WriteLine("------------------------------------------------------------------"); var methodlar = instance.GetType().GetMethods(); //belirtilen tipe ait bütün metotları listeler. foreach (var info in methodlar) { Console.WriteLine("Metotlar: " + info.Name); foreach (var parametre in info.GetParameters())//belirtilen tipe ait metotların parametrelerini listeler. { Console.WriteLine("Parametre: " + parametre.Name); } foreach (var attribute in info.GetCustomAttributes()) //belirtilen tipe ait bütün attributeleri listeler. { Console.WriteLine("Attribute Name: " + attribute.GetType().Name); } } Console.WriteLine("------------------------------------------------------------------"); Console.ReadLine(); }