C# 'da bir yönteme null olarak girilebilir Func?Nullable Func <T, TResult>
Ne Func<A, bool>?
ne de Func?<A, bool>
çalışıyor.
C# 'da bir yönteme null olarak girilebilir Func?Nullable Func <T, TResult>
Ne Func<A, bool>?
ne de Func?<A, bool>
çalışıyor.
Bu mantıklı değil.
Func<...>
dahil olmak üzere tüm başvuru türleri zaten null
olabilir.
Null türler, normalde null
olamayan değer türleri için geçerlidir (struct
s).
A Func, referans türü olan bir temsilci. Bu, zaten null edilebileceği anlamına gelir (null bir yönteme geçebilirsiniz).
Func -> dönmez bir yöntem Kapsüller -> dönüş türü void ise,
Action farklı bir temsilci (Eylem) vardır jenerik parametresi
tarafından belirtilen bir tür döndüren bir yöntem kapsüller bir değer.
Eğer nc (nullable tür) kabul edebilen parametreler kabul etmek için Func veya 'null (nullable type)' türünde bir değer döndürmesi gerekiyorsa, herhangi bir kısıtlama yoktur. Örneğin,
.
Func<int?, int?, bool> intcomparer =
(a,b)=>
{
if(a.HasValue &&b.HasValue &&a==b)
return true;
return false;
} ;
Func<int?, int?, bool?> nullintcomparer =
(a,b)=>
{
if(a.HasValue &&b.HasValue &&a==b)
return true;
if(!a.HasValue || !b.HasValue)
return null;
return false;
} ;
var result1 = intcomparer(null,null); //FALSE
var result2 = intcomparer(1,null); // FALSE
var result3 = intcomparer(2,2); //TRUE
var result4 = nullintcomparer(null,null); // null
var result5 = nullintcomparer(1,null); // null
var result6 = nullintcomparer(2,2); //TRUE
Dönüş tipi hakkında konuşmuyor. – SLaks
@ bto.rdz: Huh? Javascript'in hiç bir türü yok. – SLaks