[英]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.