অনেকগুলি এমএসআইএল তালিকায় আমি নিম্নলিখিতটি পর্যবেক্ষণ করেছি:
System.Nullable`1<!0> etc ...
বা
class !0 etc ...
!0
এই পরিস্থিতিতে এর অর্থ কী ?
উত্তর:
আপনি নেট নেট অ্যাসেমব্লিং দেখতে আপনি যে ডিসকোপিলারটি ব্যবহার করেন এটি এটি হল। এটি ildasm.exe এর আচরণ, অন্য প্রতিচ্ছবি বা আইএলএসপিএসের মতো এই অধিকারটি পান। মাইক্রোসফ্ট প্রোগ্রামার যিনি এটি লিখেছিলেন এটি একটি শর্টকাট নিয়েছে, তিনি আইএল থেকে একটি স্ট্রিং উত্পন্ন করে যা মেটাডেটাতে যুক্তি নামটি অনুসন্ধান করার জন্য অতিরিক্ত কোড না লিখে কেবল প্রকারের যুক্তিটি এনকোড করার পদ্ধতিটি প্রদর্শন করে।
!n
জেনেরিক টাইপের এন-থ টাইপ আর্গুমেন্ট হিসাবে আপনাকে পড়তে হবে । যেখানে! 0 এর অর্থ "প্রথম ধরণের আর্গুমেন্ট", 1 এর অর্থ "দ্বিতীয় ধরণের আর্গুমেন্ট", ইত্যাদি ce নুলাবাল <> এর জন্য, আপনি জানেন যে '! 0` এর অর্থ এমএসডিএন নিবন্ধ থেকে' টি '।
আপনিও এরকম কিছু মুখোমুখি হতে পারেন !!T
। দুটি বিস্মৃত চিহ্ন চিহ্ন জেনেরিক পদ্ধতির জন্য একটি ধরণের আর্গুমেন্ট নির্দেশ করে । এবার ildasm.exe নেই টাইপ যুক্তি নাম পরিবর্তে ব্যবহার করার চেহারা !!0
। প্রোগ্রামার কেন জেনেরিক ধরণের ক্ষেত্রে শর্টকাট নিয়েছে তবে জেনেরিক পদ্ধতিতে নয়, বিপরীত প্রকৌশলী করা শক্ত। ইল্ডাসম একটি চমকপ্রদ প্রোগ্রাম এবং এটি সি ++ কোডিং স্টাইলে লেখা হয় যা। নেট এ অন্য সি ++ কোডের থেকে একেবারেই আলাদা। শৃঙ্খলাবদ্ধ নয়, শূন্যের মতবিরোধ নয় যে এটি কোনও ইন্টার্নের অ্যাসাইনমেন্ট ছিল :)
"নুলাবল" এ `1 প্রত্যয়টি জেনেরিক টাইপের নামের জন্য একটি সাধারণ এনকোডিং, এটি জেনেরিক ধরণের এক ধরণের আর্গুমেন্টের ইঙ্গিত দেয়। অন্য কথায়, নুল << জন্য আপনি কখনই দেখতে পাবেন না! 1 ব্যবহার হচ্ছে।
সুতরাং কেবল !0
"টি" হিসাবে পড়ুন । অথবা আরও ভাল ডিকম্পিলার ব্যবহার করুন।
এটি একটি জেনেরিক ধরণের পরামিতি।
তারা অবস্থানগত।
তারা কীভাবে ব্যবহৃত হয় তা দেখতে কিছু জেনেরিক কোডটি বিভক্ত করুন (আইএল বনাম সি # তুলনা করুন)।
ldfld class System.Collections.Generic.Dictionary``2<!0, !1> valuetype System.Collections.Generic.Dictionary``2/Enumerator<!TKey, !TValue>::dictionary
বা এর মতোই call instance void class System.Collections.Generic.Dictionary``2<!TKey, !TValue>::Insert(!0, !1, bool)
। কাঁচা আইএল কেবল যাইহোক অবস্থানগত যুক্তি ব্যবহার করে, যদিও - এটি !TKey
ইতিমধ্যে আইএলকে আরও পঠনযোগ্য করার প্রচেষ্টা। এটি সবসময় ভাল কাজ করে না? ইসিএমএ স্পেক সর্বদা অবস্থানগত !0
/ !00
পাশাপাশি ব্যবহার করে ।
!T
এবং!!T
, জেনেরিক প্যারামিটারটি সমন্বিত শ্রেণীর বা পদ্ধতিটির কিনা তার উপর নির্ভর করে ... আমি ইলডাস ব্যবহার করি তবে একই