উত্তর:
নিম্নলিখিত চেষ্টা করুন
typeField == typeof(string)
typeField == typeof(DateTime)
typeofC # অপারেটর আপনি একটি দেব Typeনামে টাইপ জন্য বস্তু। Typeউদাহরণগুলি ==অপারেটরের সাথে তুলনাযোগ্য তাই তাদের তুলনা করার জন্য এটি একটি ভাল পদ্ধতি।
দ্রষ্টব্য: যদি আমি সঠিকভাবে মনে করি তবে এমন কিছু ঘটনা ঘটে যখন জড়িত প্রকারগুলি সিওএম ইন্টারফেসগুলি যখন এসেম্বলিতে এম্বেড করা হয় (নোপিএআইয়ের মাধ্যমে) break এখানে যেমন হয় তেমন শব্দ হয় না।
আপনি এটির জন্য is অপারেটর ব্যবহার করতে পারেন । তারপরে আপনি যাচাই বাছাই করে পরীক্ষা করে দেখতে পারেন যে কোনও বস্তু নির্দিষ্ট ধরণের কিনা তা লিখে:
if (myObject is string)
{
DoSomething()
}
আপনি ঠিক একই ধরণের ব্যবহার করে তুলনা করতে পারেন:
class A {
}
var a = new A();
var typeOfa = a.GetType();
if (typeOfa == typeof(A)) {
}
টাইপফ একটি প্রদত্ত শ্রেণীর থেকে টাইপ অবজেক্টটি প্রদান করে।
তবে আপনার যদি টাইপ বি থাকে, যা এ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়, তবে এই তুলনাটি ভুল। এবং আপনি isAssignableFrom খুঁজছেন ।
class B : A {
}
var b = new B();
var typeOfb = b.GetType();
if (typeOfb == typeof(A)) { // false
}
if (typeof(A).IsAssignableFrom(typeOfb)) { // true
}
যদি আপনার উদাহরণটি হয় Type:
Type typeFiled;
if (typeField == typeof(string))
{
...
}
কিন্তু একটি যদি আপনার উদাহরণস্বরূপ হয় objectএবং না একটি Typeব্যবহার asঅপারেটর:
object value;
string text = value as string;
if (text != null)
{
// value is a string and you can do your work here
}
এতে valueকেবল একবার নির্দিষ্ট ধরণের রূপান্তরিত হওয়ার সুবিধা রয়েছে ।
http://msdn.microsoft.com/en-us/library/system.type.gettype.aspx
Console.WriteLine("typeField is a {0}", typeField.GetType());
যা আপনাকে এরকম কিছু দেবে
typeField is a String
typeField is a DateTime
অথবা
http://msdn.microsoft.com/en-us/library/58918ffs(v=vs.71).aspx