使用c#中的out字符串从方法返回多个值
本文关键字:返回 方法 中的 out 字符串 使用 | 更新日期: 2023-09-27 18:27:12
LoadEmployee
也是一个方法,我面临一个错误:The out parameters 'Firstname' must be assigned to before control leaves the current method
是否有其他方法可以在不使用out parameter
的情况下返回值
protected void SplitName(string Name, out string FirstName, out string MiddleName)
{
char[] delimiterChars = { ',' };
string[] name = acEmployee.Text.Split(delimiterChars);
string Lastname = name[0];
string middlename = name[1].Substring(Math.Max(0, name[1].Length - 1));
string Firstname = name[1] = name[1].Remove(name[1].Length - 1);
}
private void LoadEmployee()
{
string name = acEmployee.Text;
string firstname, middlename;
SplitName(name,out firstname,out middlename);
}
您不能将它们作为局部变量,因为您需要为中传递的参数赋值
protected void SplitName(string Name, out string FirstName, out string MiddleName)
{
char[] delimiterChars = { ',' };
string[] name = acEmployee.Text.Split(delimiterChars);
string Lastname = name[0];
Middlename = name[1].Substring(Math.Max(0, name[1].Length - 1));
Firstname = name[1] = name[1].Remove(name[1].Length - 1);
}
你还可以做的是有一个对象来包装的所有名称
public class Name
{
public string FirstName {get; set;}
public string MiddleName {get; set;}
public string LastName {get; set;}
}
然后你可以从你的方法返回
protected Name SplitName(string Name)
您应该为out
参数赋值,因此替换下面的
string middlename = name[1].Substring(Math.Max(0, name[1].Length - 1));
string Firstname = name[1] = name[1].Remove(name[1].Length - 1);
带有
MiddleName= name[1].Substring(Math.Max(0, name[1].Length - 1));
FirstName= name[1] = name[1].Remove(name[1].Length - 1);
您必须删除字符串标记,因为您已经在(protected void SplitName(字符串名称,out string FirstName,out string MiddleName))中声明了它们
name = acEmployee.Text.Split(delimiterChars);
Lastname = name[0];
middlename = name[1].Substring(Math.Max(0, name[1].Length - 1));
Firstname = name[1] = name[1].Remove(name[1].Length - 1);