উত্তর:
এখানে বিভিন্ন উত্তরের দুটি পৃথক অর্থ রয়েছে।
আপনি করতে চান তাহলে একটি দৃষ্টান্ত হল কিনা একটি সঠিক টাইপ তারপর
if (c.GetType() == typeof(TForm))
যাবার উপায়
আপনাকে জানতে হবে কিনা চান cএকটি দৃষ্টান্ত হল TForm বা উপশ্রেণী তারপর ব্যবহার is/ as:
if (c is TForm)
অথবা
TForm form = c as TForm;
if (form != null)
আপনি আসলে এই আচরণগুলির মধ্যে কোনটি সম্পর্কে আপনার মনে পরিষ্কার হওয়া উচিত।
isএবং asপ্যাটার্ন মেলানোর সাথে:if (x is TForm tf) {…
if(c is TFrom)
{
// Do Stuff
}
বা আপনি যদি এটি cহিসাবে ব্যবহার করার পরিকল্পনা করেন TFormতবে নীচের উদাহরণটি ব্যবহার করুন:
var tForm = c as TForm;
if(tForm != null)
{
// c is of type TForm
}
দ্বিতীয় উদাহরণটি কেবল একবার cটাইপ হয়েছে কিনা তা পরীক্ষা করে দেখার প্রয়োজন TForm। এর মধ্যে যদি আপনি যাচাই করে থাকেন যদি cপ্রকারের মতো কিনা তা দেখুন তবে TFormএটি নিক্ষেপ করুন, সিএলআর অতিরিক্ত পরীক্ষা করে নিচ্ছে । এখানে একটি উল্লেখ আছে ।
সম্পাদনা করুন: জোন স্কিট থেকে চুরি হয়েছে
আপনি করতে চান নিশ্চিত cহয় TFormএবং কোন ক্লাস থেকে উত্তরাধিকার সূত্রে প্রাপ্ত TForm, তারপর ব্যবহার
if(c.GetType() == typeof(TForm))
{
// Do stuff cause c is of type TForm and nothing else
}
হ্যাঁ, "হ'ল মূলশব্দ:
if (c is TForm)
{
...
}
এমএসডিএন-তে বিস্তারিত দেখুন: http://msdn.microsoft.com/en-us/library/scekt9xw(VS.80).aspx
কোনও বস্তু প্রদত্ত ধরণের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করে। উদাহরণস্বরূপ, এটি নির্ধারণ করা যেতে পারে যদি কোনও বস্তুর মতো স্ট্রিং টাইপের সাথে সামঞ্জস্য হয়:
এছাড়াও, কিছুটা একই শিরাতে
Type.IsAssignableFrom(Type c)
"সত্য যদি গ এবং বর্তমান টাইপ একই ধরণের প্রতিনিধিত্ব করে, বা যদি বর্তমান টাইপ সি এর উত্তরাধিকারক্রমক্রমের মধ্যে থাকে, বা যদি বর্তমান প্রকারটি ইন্টারফেস যা সি প্রয়োগ করে, বা সি জেনেরিক টাইপ পরামিতি এবং বর্তমান প্রকার হয় গ এর প্রতিবন্ধকতার মধ্যে একটির প্রতিনিধিত্ব করে।
এখান থেকে: http://msdn.microsoft.com/en-us/library/system.type.isassignablefrom.aspx
typeof(Class).IsAssignableFrom(object.getType())জাভা instanceofঅপারেটরের অনুরূপ ।
T1.IsAssignableFrom(T2)ফিরে আসেtrueas অপারেটর সেই ধরণের উদাহরণগুলির ভিত্তিতে একটি নন-নাল মান প্রদান করে।
অন্যরা যেমন উল্লেখ করেছে, "হ'ল" কীওয়ার্ড। তবে, আপনি যদি পরে এটিকে টাইপ করতে যান তবে, যেমন।
TForm t = (TForm)c;
তারপরে আপনার "হিসাবে" কীওয়ার্ডটি ব্যবহার করা উচিত।
যেমন TForm t = c as TForm.
তারপরে আপনি চেক করতে পারেন
if(t != null)
{
// put TForm specific stuff here
}
এর সাথে একত্রিত হবেন না কারণ এটি একটি সদৃশ চেক।
bool isValid = c.GetType() == typeof(TForm) ? true : false;
বা সহজ
bool isValid = c.GetType() == typeof(TForm);
==) অবজেক্ট বা ওরিয়েন্টেড ভাষায় উত্তরাধিকারকে সমর্থন করে যদি না আপনি জানেন যে আপনার নির্দিষ্ট ধরণের উদাহরণস্বরূপ কোনও sealedশ্রেণি থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হবে না । এছাড়াও: একটি টার্নারি অপারেটর রিটার্নিং (স্ট্যাটিক / ধ্রুবক) বুলিয়ান মানগুলি আমাকে বিরক্ত করে, যদি এটি switchবিবৃতি হয় তবে আমি কম বিরক্ত হব ।
instanceofএবং সি # এর করাisএর আরও ভাল উপায়।