আমার কাছে যদি কোনও পদ্ধতি স্বাক্ষর থাকে
public string myMethod<T>( ... )
আমি কীভাবে পদ্ধতির অভ্যন্তরে টাইপ আর্গুমেন্ট হিসাবে টাইপটির নাম পেতে পারি? আমি এর মতো কিছু করতে চাই typeof(T).FullName
, তবে এটি আসলে কাজ করে ...
আমার কাছে যদি কোনও পদ্ধতি স্বাক্ষর থাকে
public string myMethod<T>( ... )
আমি কীভাবে পদ্ধতির অভ্যন্তরে টাইপ আর্গুমেন্ট হিসাবে টাইপটির নাম পেতে পারি? আমি এর মতো কিছু করতে চাই typeof(T).FullName
, তবে এটি আসলে কাজ করে ...
উত্তর:
আপনার কোড কাজ করা উচিত। typeof(T).FullName
পুরোপুরি বৈধ। এটি একটি সম্পূর্ণ সংকলন, কার্যকারী প্রোগ্রাম:
using System;
class Program
{
public static string MyMethod<T>()
{
return typeof(T).FullName;
}
static void Main(string[] args)
{
Console.WriteLine(MyMethod<int>());
Console.ReadKey();
}
}
উপরের প্রিন্টগুলি চালানো (আশানুরূপ হিসাবে):
System.Int32
<int?>
" যদি তাই হয় তবে এটি কার্যকর হয় তবে আপনি System.Nullable<int>
(পুরো নাম সিনট্যাক্সে) পান যা আপনি প্রত্যাশা করতেন ...
nameof(T)
এবং typeof(T).Name
একই কাজটি করব তাই এটি কেবল আমাকে সহায়তা করেছিল । সক্রিয় আউট nameof(T)
মাত্র আয় T
।
typeof(T).Name
এবং typeof(T).FullName
আমার জন্য কাজ করছে। আমি আর্গুমেন্ট হিসাবে টাইপটি পাস করি।
ধরে নিই যে আপনার কাছে কোনও টি উপলক্ষ্য রয়েছে, এটি অন্য কোনও ধরণের চেয়ে আলাদা নয়।
var t = new T();
var name = t.GetType().FullName;
typeof(T).FullName
কাজ করা উচিত । পরিবর্তে কি ঘটছে?