প্রথম বিষয়টি লক্ষ করুন VB.NET- এর সি # এর ingালাইয়ের (type)instance
প্রক্রিয়াটির সরাসরি এনালগ নেই । আমি এটি এনেছি কারণ এটি দুটি ভিবি.এনইটি অপারেটরের তুলনায় প্রাথমিক পয়েন্ট হিসাবে কার্যকর (এবং তারা অপারেটর, না ফাংশন, যদিও তাদের ফাংশন শব্দার্থক রয়েছে)।
DirectCast()
সি # ingালাই অপারেটরের চেয়ে আরও কঠোর। এটি কেবল তখনই আপনাকে কাস্ট করতে দেয় যখন আইটেমটি ইতিমধ্যে কাস্ট করা হচ্ছে আপনি যে ধরণের কাস্ট করছেন। আমি বিশ্বাস করি এটি এখনও মূল্য ধরণের আনবক্স করবে, তবে অন্যথায় এটি কোনও রূপান্তর করবে না। সুতরাং, উদাহরণস্বরূপ, আপনার কাছ থেকে নিক্ষেপ করতে পারবে না short
থেকে int
, মত আপনি একটি উইথ সি শার্প পারা (int)
কাস্ট করুন। তবে আপনি IEnumerable
যদি একটি অন্তর্নির্মিত IEnumerable
অবজেক্ট ভেরিয়েবলটি সত্যিই একটি হয় তবে আপনি একটি অ্যারে থেকে কাস্ট করতে পারেন Array
। এবং অবশ্যই আপনি Object
যে কোনও কিছু থেকে কাস্ট করতে পারেন , ধরে নিচ্ছেন যে আপনার অবজেক্টের উদাহরণটি আসলে উত্তরাধিকার গাছের মধ্যে আপনার কাস্টের ধরণের নীচে।
এটি আকাঙ্খিত কারণ এটি আরও দ্রুত । এখানে রূপান্তর ও প্রকারের পরীক্ষা কম হওয়ার দরকার রয়েছে needs
CType()
সি # ingালাই অপারেটরের চেয়ে কম কঠোর। এটি (int)
স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করার মতো সাধারণ স্টাইলের castালাইয়ের সাহায্যে আপনি না করতে পারে এমনগুলি করবে। এটিতে Convert.To___()
সি # তে কল করার মতোই শক্তি রয়েছে , যেখানে এটি ___
আপনার অভিনেতার টার্গেটের ধরণ।
এটি পছন্দসই কারণ এটি খুব শক্তিশালী। যাইহোক, এই শক্তি কর্মক্ষমতা ব্যয় করে আসে; এটি DirectCast()
সি বা এর কাস্ট অপারেটরের মতো দ্রুত নয় কারণ castালাই শেষ করতে এটির জন্য প্রচুর কাজ করার প্রয়োজন হতে পারে। সাধারণত DirectCast()
যখন আপনি পারেন পছন্দ করা উচিত ।
অবশেষে, আপনি একটি কাস্টিং অপারেটর মিস করেছেন: TryCast()
যা সি # এর as
অপারেটরের সরাসরি উপমা ।