"Boşluk" ile ilgili temel problem, herhangi bir başka geri dönüş tipi ile aynı anlama gelmediğidir. "void", "eğer bu yöntem geri dönerse, o zaman hiçbir değer döndürmez" anlamına gelir. Geçersiz değil; null bir değerdir. Herhangi bir değer vermez.
Bu gerçekten tip sistemini bozuyor. Tip bir sistem, hangi işlemlerin belirli değerler üzerinde geçerli olduğu konusunda mantıklı çıkarımlar yapmak için kullanılan bir sistemdir; geçersiz bir döndürme yöntemi bir değer döndürmez, bu nedenle "bu işlem için hangi işlemler geçerli?" hiç mantıklı gelme. Geçerli veya geçersiz bir işlem olması için "bir şey" yok.
Üstelik bu, çalışma zamanını şiddetli bir şeye karıştırıyor. .NET çalışma zamanı, yığın makinesi olarak belirtilen Sanal Yürütme Sisteminin bir uygulamasıdır. Yani, işlemlerin hepsinin bir değerlendirme yığını üzerindeki etkileri bakımından karakterize edildiği sanal bir makine. (Pratikte Tabii makine yığını ve kayıtları hem bir makinede uygulanacaktır, ancak sanal yürütme sistemi sadece bir yığın varsayar.) Çağrının etkisini bir boşluk yöntemine olduğunu temeldenboş olmayan bir yönteme yapılan çağrının etkisinden farklı; geçersiz olmayan bir yöntem her zaman yığında çıkarılması gerekebilecek bir şey koyar. Bir geçersiz yöntem hiçbir zaman yığına bir şey koyar. Bu nedenle, derleyici geçersiz ve boş olmayan yöntemleri, yöntemin döndürülen değerinin dikkate alınmadığı durumlarda aynı şekilde ele alamaz; yöntem geçersiz ise, o zaman bir dönüş değeri yoktur, bu yüzden pop olmamalıdır.
Tüm bu nedenlerden dolayı, "boşluk" başlatılabilecek bir tür değildir; sahip olduğu hiçbir değer onun bütün nokta. Nesneye dönüştürülemez ve geçersiz bir geri döndürme yöntemi hiçbir zaman, hiçbir zaman, geri döndürmeyen bir yöntemle polimorfik olarak işlenemez, çünkü bunu yaparken yığını bozar!
Bu nedenle, void not ettiğiniz gibi utanç verici bir tür argümanı olarak kullanılamaz. Çok uygun olurdu.
Herhangi bir şey yerine, herhangi bir şey yerine, otomatik olarak sihirli bir singleton referans türü olan "Unit" i geri döndüren herhangi bir şey yerine getirmediği takdirde hindsight'ın yararı ile daha iyi olurdu. Daha sonra her yöntem çağrısının yığına bir şey koyduğunu , her yöntem çağrısının bir nesne türünün değişkenine atanabilecek bir şey döndürdüğünü ve tabii ki Birimin bir tür argümanı olarak kullanılabileceğini biliyordunuz. Ayrı Eylem ve Func temsilci türlerine sahip olmanıza gerek yok. Ne yazık ki, içinde bulunduğumuz dünya o değil.
Bu damardaki bazı düşünceler için bakınız: