Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
6
Cevap
0
Tıklama
0
Öne Çıkarma
C# Generic class T nullable nasıl yapılıyor ?

O ORGANIKHOSAF Konu Sahibi
11 ay (2626 mesaj)
NOT : Resimler konuda gözükmüyor anlamadım üstüne tıklayın kutuların açılıyor.

Merhaba web api ve vue kullanarak kendimi geliştirme,deneme maksatlı bir site yapıyorum olabildiğince araştırarak doğru şekilde ilerlemeye çalışıyorum.

Bir sorunum var daha doğrusu sorun değil gayet güzel çalışıyor ama genede daha düzgününü yazmak hedefim.

< Resime gitmek için tıklayın >

Yukarıdaki resimdeki gibi bir classım var ben apide geri dönüş yaparken bu classı kullanıyorum şu makaleden gördüm uyguladım kendime göre ayarladım
http://www.borakasmer.com/net-core-ef-core-ve-dependency-injection-ile-uctan-uca-service-ve-business-katmani/

Şimdi benim yapmak istediğim şey şu apide her zaman geriye ben veri dönmüyorum yani o datayı doldurmama gerek yok sadece message,issucess ve errorsu doldurup dönüyorum bazen

Örnek : < Resime gitmek için tıklayın >

Yukardaki resimde ben login register ve confirm email aksiyonlarında sadece hata varsa hata ve issuccess dönüyorum yani geriye bir data dönmüyorum yani o classları vermeme gerek yok ama boş geçmeme izin vermediğinden doldurdum böylede çalışıyor.
https://docs.microsoft.com/tr-tr/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters

Şu makaledeki olayı denedim yani ServiceResponse <T> where T : class? bu şekil yaptım ama genede boş geçmeme izin vermedi bunu ben nasıl boş geçilebilir yapabilirim Nullable <T> felan ne biliyorsam denedim olmadı T den sonra ? işareti koydum olmadı.





< Bu mesaj bu kişi tarafından değiştirildi ORGANIKHOSAF -- 23 Ağustos 2020; 14:11:50 >


K kangroo
11 ay (3859 mesaj)
public Nullable<int> Somethings { get; set; }


Bu işe yaramıyor mu?


Bu mesaja 1 cevap geldi.

O ORGANIKHOSAF Konu Sahibi
11 ay (2626 mesaj)
Denedim yaramadi.Tesekkurler.



< Bu ileti DH mobil uygulamasından atıldı >


Bu mesajda bahsedilenler: @kangroo

M mahoni_38
11 ay (2736 mesaj)
referans tipler zaten nullabledir. default value de null zaten. ServiceResponse<object> response = new ServiceResponse<object>() dediginde data nullable olur.

class? diye bir yazim yok diye biliyorum.


Bu mesaja 1 cevap geldi.

O ORGANIKHOSAF Konu Sahibi
11 ay (2626 mesaj)
Sağol abi o class? yazımını konuda paylaştığım microsoftun sitesinde görmüştüm aşağıya da o kısmı yapıştırdım

where T : class? Tür bağımsız değişkeni, null yapılabilir veya null yapılamayan bir başvuru türü olmalıdır. Bu kısıtlama, her sınıf, arabirim, temsilci veya dizi türü için de
geçerlidir yazıyor


Şimdi ben bu response daki datanın boş olmasını istersem illa object mi yazmam lazım direk boş geçerek oraya bir şey yazmadan olmuyor sanırım ben onu istiyordum.Aşağıda kodumun şuan nasıl olduğununa dair resim paylaştım kutuya tıklayınca açılıyor forumda gösteremiyorum anlamadım.

Kodum bu böyle dönüş yapıyorum < Resime gitmek için tıklayın > mesela registerviewmodel vermeme gerek yok message error dönüyorum. Ozaman ben eğer boş geçmek istersem datayı,return new ServiceResponse<object> şeklinde yazıcam null olmuş olacak return new ServiceResponse<> böyle bırakılmıyor anladım.

Teşekkür ederim.





< Bu mesaj bu kişi tarafından değiştirildi ORGANIKHOSAF -- 24 Ağustos 2020; 11:33:22 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mahoni_38

M mahoni_38
11 ay (2736 mesaj)
quote:

Orijinalden alıntı: ORGANIKHOSAF

Sağol abi o class? yazımını konuda paylaştığım microsoftun sitesinde görmüştüm aşağıya da o kısmı yapıştırdım

where T : class? Tür bağımsız değişkeni, null yapılabilir veya null yapılamayan bir başvuru türü olmalıdır. Bu kısıtlama, her sınıf, arabirim, temsilci veya dizi türü için de
geçerlidir yazıyor


Şimdi ben bu response daki datanın boş olmasını istersem illa object mi yazmam lazım direk boş geçerek oraya bir şey yazmadan olmuyor sanırım ben onu istiyordum.Aşağıda kodumun şuan nasıl olduğununa dair resim paylaştım kutuya tıklayınca açılıyor forumda gösteremiyorum anlamadım.

Kodum bu böyle dönüş yapıyorum < Resime gitmek için tıklayın > mesela registerviewmodel vermeme gerek yok message error dönüyorum. Ozaman ben eğer boş geçmek istersem datayı,return new ServiceResponse<object> şeklinde yazıcam null olmuş olacak return new ServiceResponse<> böyle bırakılmıyor anladım.

Teşekkür ederim.
c# 8 ile idi galiba. value typelar ve classlar expilict olarak nullable veya not null oluyor olabilir boyle birseyler gozume carpti. Swift de bir degisken
weak veya strong tanimlayarak nullable ve not null verilebiliyor. Bu ozellik c# geldiyse bilmiyorum.

Bir nesneyi GenericClass olarak natimladiysan List<T> gibi . illa o T vermen lazim. kullan kullanma. Onu kullanmadigin bir hali varsa ayri bir obje tasarlar. MyGenericClass<T> da T yerine Object vermek zorunda deglsin ama bir sey vermen lazim.


Bu mesaja 1 cevap geldi.

O ORGANIKHOSAF Konu Sahibi
11 ay (2626 mesaj)
Tamamdır abi teşekkürler 2 ayrı class yapmak istememiştim şimdilik geriye data dönmediğim zaman object verip geçiyorum. Data dönceğim zaman model veya entity veriyorum böyle ayarladım.Sağol tekrardan




Bu mesajda bahsedilenler: @mahoni_38
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.