C# 从方法/函数C返回数组的正确语法是什么#
我正在做一个任务,在这个任务中,我应该在数组中存储一些字符串数据。每个新字符串都应该存储在一个单独的数组中,这就是为什么我需要一个方法来返回一个新数组,该数组的名称由用户指定每次调用此方法时,我需要一个具有uniq名称的新数组。 在2d行中,我得到一个错误:名为“\u arrayNameFromUser”的本地或参数不能在此范围中声明,因为该名称在封闭的本地范围中用于定义本地或参数测试 那么,如何使用用户指定的名称创建新数组呢C# 从方法/函数C返回数组的正确语法是什么#,c#,arrays,C#,Arrays,我正在做一个任务,在这个任务中,我应该在数组中存储一些字符串数据。每个新字符串都应该存储在一个单独的数组中,这就是为什么我需要一个方法来返回一个新数组,该数组的名称由用户指定每次调用此方法时,我需要一个具有uniq名称的新数组。 在2d行中,我得到一个错误:名为“\u arrayNameFromUser”的本地或参数不能在此范围中声明,因为该名称在封闭的本地范围中用于定义本地或参数测试 那么,如何使用用户指定的名称创建新数组呢 A local or parameter named '_array
A local or parameter named '_arrayNameFromUser' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter test
为其指定与参数不同的名称:
static string[] NewArary(string name)
{
string[] ret = new string[2];
ret[0] = name;
return ret;
}
请注意,C#命名约定仅对字段使用\u下划线预定义的
名称,而不是参数或局部变量,并且通常也仅限于静态
字段(因为可以使用this.
访问实例字段),请参见下面的标识符常规大写示例:
public class TypeName
{
private static readonly String _staticField = "foo";
private Int32 field;
public Int32 Property { get { return this.field; } }
public const String PublicConstant = "bar";
public void Method(Uri parameter) {
Int32 local = 123;
}
}
(虽然我使用
Int32
代替int
和String
代替String
是一个有争议的立场:D)给它一个不同于参数的名称:
static string[] NewArary(string name)
{
string[] ret = new string[2];
ret[0] = name;
return ret;
}
请注意,C#命名约定仅对字段使用\u下划线预定义的
名称,而不是参数或局部变量,并且通常也仅限于静态
字段(因为可以使用this.
访问实例字段),请参见下面的标识符常规大写示例:
public class TypeName
{
private static readonly String _staticField = "foo";
private Int32 field;
public Int32 Property { get { return this.field; } }
public const String PublicConstant = "bar";
public void Method(Uri parameter) {
Int32 local = 123;
}
}
(虽然我使用
Int32
代替int
和String
代替String
是一个有争议的立场:D)在编译时和运行时之间存在一些混淆。您不会在运行时创建新变量
我想你需要的是一本字典
。然后,您不必调用NewArary
(原文如此),而是执行以下操作:
Dictionary<string,string[]> arrays = new Dictionary<string,string[]>();
//NewArary("abc");
arrays.Add("abc", new string[]{});
在这里,编译时和运行时之间存在一些混淆。您不会在运行时创建新变量 我想你需要的是一本
字典
。然后,您不必调用NewArary
(原文如此),而是执行以下操作:
Dictionary<string,string[]> arrays = new Dictionary<string,string[]>();
//NewArary("abc");
arrays.Add("abc", new string[]{});
方法体中已经有名为
\u arrayNameFromUser
的变量-它是一个方法参数。因此,您不能用完全相同的名称声明另一个变量。还要注意,在模式代码指南中,\uu
将指示私有实例字段,而不是局部变量或方法parameter@Icepickle改变了,谢谢你能给你的任务添加准确的描述吗?我认为(和其他一些人一样)这里有一个误解。在方法体中已经有名为\u arrayNameFromUser
的变量-它是一个方法参数。因此,您不能用完全相同的名称声明另一个变量。还要注意,在模式代码指南中,\uu
将指示私有实例字段,而不是局部变量或方法parameter@Icepickle改变了,谢谢你能给你的任务添加准确的描述吗?我认为(和其他一些人一样)这里有一个误解,这是错误的,因为它只会返回一个名为“ret”和第一个元素名(包含用户输入的内容)的数组。我想要的是每次调用此方法时都使用uniq名称的新数组。@Gusto您不能这样做-编译的代码是静态和固定的,包括标识符。不能像那样参数化变量名。我认为你误解了你的编程任务。这是错误的,因为它只返回一个名为“ret”的数组和第一个元素名(包含用户输入的内容)。我想要的是每次调用此方法时都使用uniq名称的新数组。@Gusto您不能这样做-编译的代码是静态和固定的,包括标识符。不能像那样参数化变量名。我想你误解了你的编程作业。我不能使用字典,我必须只使用数组(这是一项学术作业)@Gusto-那么你在什么地方误解了你的作业,因为你不能在运行时创建新的“变量”。我不能使用字典,我必须只使用数组(这是一项学术作业)@Gusto-然后你在某个地方误解了你的任务,因为你不能在运行时创建新的“变量”。