我呼叫 FunctionB 使用這樣的通用方法傳遞一個字串陣列。
string[] array1 = {"data1", "data2", "data3"};
void FunctionA ( )
{
FunctionB ( array1 );
}
void FunctionB <T> (T arg)
{
print (typeof(T));
}
我得到了 arg 的資料型別。有沒有辦法在 FunctionB 中有 array1 的資料元素?
uj5u.com熱心網友回復:
您可以創建另一種方法,該方法將陣列作為引數并彈出陣列的每個元素。例子:
void FunctionB <T> (T[] arg)
{
foreach(T item in arg)
{
print (item);
}
}
uj5u.com熱心網友回復:
我想你需要使用模式匹配。這是如何做到的:
static class Program
{
static void FunctionB<T>(T arg)
{
if (arg is string[] array)
{
foreach (var item in array)
{
Console.WriteLine(item);
}
}
}
static void Main(string[] args)
{
// TODO: Put code here
string[] array1 = { "data1", "data2", "data3" };
FunctionB(array1);
//data1
//data2
//data3
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/405267.html
標籤:
