[英]How to create a reference to System.Array holding strings in C#
我有一個關於C#代碼的有趣問題。 基本上我必須調用一個方法
BCI2000AutomationLib.IBCI2000Remote.StartupModules(ref System.Array)
使用Visual Studio 2010,以下代碼可以完美地編譯和運行:
// Startup modules
string[] modules = new string[3];
modules[0] = "SignalGenerator --local";
modules[1] = "DummySignalProcessing --local";
modules[2] = "DummyApplication --local";
ok_conn = bci.StartupModules(ref modules);
現在將其移植到游戲引擎(例如Unity 3D)需要一些更嚴格的C#代碼,因為它使用Mono C#編譯器。 所以對於相同的代碼我得到以下編譯錯誤:
'BCI2000AutomationLib.IBCI2000Remote.StartupModules(ref System.Array)'的最佳重載方法匹配有一些無效的參數參數1:無法從'ref string []'轉換為'ref System.Array'
您能否就如何將此代碼塊重寫為更嚴格的編碼以解決所述錯誤提出建議?
將變量的類型更改為System.Array
// Startup modules
Array modules = new string[3]
{
"SignalGenerator --local",
"DummySignalProcessing --local",
"DummyApplication --local"
};
ok_conn = bci.StartupModules(ref modules);
你的方法StartupModules將ref數組作為參數; 它可以將變量設置為任何其他Array。 不一定是字符串數組,它可以是int []。 這就是為什么你不能使用類型為String的變量調用。
String Array程序,從用戶獲取字符串:
class Program
{
static void Main(string[] args)
{
int i,j;
string[] str = new string[10];
Console.WriteLine("Enter the Name of your friends");
for (i = 0; i < 10; i++)
{
str[i] = Convert.ToString(Console.ReadLine());
Console.WriteLine("Array["+i+"]="+str[i]);
}
Console.ReadLine();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.