এক প্রকার হিসাবে অকার্যকর । পৃথিবীতে কেন "শূন্য" এক প্রকার? এটির কোনও উদাহরণ নেই, এর কোনও মান নেই, আপনি এটিকে জেনেরিক টাইপ আর্গুমেন্ট, ফর্মাল প্যারামিটার টাইপ, লোকাল টাইপ, ফিল্ড টাইপ বা প্রোপার্টি টাইপ হিসাবে ব্যবহার করতে পারবেন না। প্রকার হিসাবে এর কোনও অর্থ নেই; পরিবর্তে, ভার্চুয়াল মেশিনের স্ট্যাকের উপর কোনও মেথড কলের কী প্রভাব ফেলেছে এটি একটি সত্য । তবে ভার্চুয়াল মেশিনটি হ'ল: ভার্চুয়াল মেশিন। আসল মেশিন প্রত্যাবর্তিত মানটিকে একটি রেজিস্টারে রাখবে (সাধারণত x86 এ EAX) এবং স্ট্যাকটিকে মোটেই প্রভাবিত করবে না! প্রকার হিসাবে অকার্যকর চারদিকে কেবল একটি খারাপ ধারণা।
আরও খারাপ: যখন পয়েন্টার টাইপের ক্ষেত্রে void*
এটি ব্যবহৃত হয় তার অর্থ রিটার্ন টাইপ হিসাবে ব্যবহৃত হওয়ার অর্থের চেয়ে সম্পূর্ণ আলাদা কিছু । এখন এর অর্থ "অজানা ধরণের সঞ্চয়স্থানের পয়েন্টার", যার অর্থ "এমন কোনও পদ্ধতি যা কোনও মূল্য ফেরায় না" হিসাবে এর অর্থের সাথে কিছুই করার থাকে না।
আমরা এর void*
সাথে পয়েন্টার টাইপ হিসাবে প্রতিস্থাপন করতে পারি IntPtr
। (এবং এর void**
সাথে আরও কিছু আছে IntPtr*
)) আমরা "ইউনিট" এর সাথে রিটার্ন টাইপ হিসাবে শূন্যস্থানটি প্রতিস্থাপন করতে পারি, এমন এক ধরণের যার একক মান রয়েছে, যথা, নাল। সিএলআর বাস্তবায়নের পরে সিদ্ধান্ত নিতে পারে যে ইউনিট-টাইপযুক্ত ফাংশন কল তার রেজিস্টারগুলি বা স্ট্যাকগুলি যথাযথভাবে অনুকূল করতে পারে, জেনে যে "নাল" ফিরিয়ে দেওয়া হচ্ছে তা নিরাপদে উপেক্ষা করা যেতে পারে knowing
এই জাতীয় বিশ্বে আপনার আর আলাদা Func<A, R>
এবং Action<T>
প্রতিনিধিদের দরকার নেই । Action<T>
ঠিক হয় Func<T, Unit>
।