C#参数的重载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#参数的重载相关的知识,希望对你有一定的参考价值。
namespace ConsoleApplication2
public class Student
public Student(int _number,char _name)
number = _number;
name = _name;
public int number = 0;
public char name =' ';
class Program
public static void Create(Student p)
List<Student> stu = new List<Student>();
stu.Add(new Student("1,honey"));
stu.Add(new Student("2,lover"));
for (int i = 0; i < 5; i++)
Stu.Add(new Student(int.Parse(Console.ReadLine()),Console.ReadLine()));
//输入字符串的格式不正确
foreach (Student s in stu)
Console.WriteLine(s);
static void Main(string[] args)
Student w = null;
Create(w);
大家帮忙看看注释说的,如果只用一个参数就正确了,两个参数就不知道哪里出错了
我改成了string _name这个,还是提示字符串的格式不正确
会不会是new Student()里面不能这样用函数啊?
public Student(int _number, string _name)
number = _number;
name = _name;
public int number = 0;
public string name ="";
class Program
public static void Create(Student p)
List<Student> stu = new List<Student>();
stu.Add(new Student(1,"honey"));
stu.Add(new Student(2,"lover"));
for (int i = 0; i < 5; i++)
stu.Add(new Student(int.Parse(Console.ReadLine()), Console.ReadLine()));
//输入字符串的格式不正确
foreach (Student s in stu)
Console.WriteLine(s);
static void Main(string[] args)
Student w = null;
Create(w);
这样写才对,里面有好几处错误
1.传参数类型要对应,你前面一个用char型后面用string类型
2.Stu.Add(new Student(int.Parse(Console.ReadLine()),Console.ReadLine()));中的Stu没有定义S要小写
3. stu.Add(new Student("1,honey"));
stu.Add(new Student("2,lover"));
你把类型"1,honey"整个当成了一个参数,所以会说没有一个参数重载,要写成 stu.Add(new Student(1,"honey"));
stu.Add(new Student(2,"lover")); 参考技术A public class Student
public Student(int _number,string _name)
number = _number;
name = _name;
public int number = 0;
public string name =" ";
参考技术B ReadLine返回的是String不是char,要转型 参考技术C 400
C#方法重载
什么是方法重载?
一般情况下,在调用方法时,必须匹配方法的签名。这表明,需要有不同的方法来操作不同类型的变量。
方法重载允许创建多个同名方法,每个函数可使用不同的参数类型。(即:方法名相同,参数个数或类型不同)
方法重载的栗子:
/// <summary> /// 简单计算器:默认计算两个值相加 /// </summary> /// <param name="value1"></param> /// <param name="value2"></param> /// <returns></returns> public static double Compute(double value1, double value2) return value1 + value2; /// <summary> /// 计算类型 /// </summary> public enum ComputeType [Description("加")] Plus, [Description("减")] Minus, [Description("乘")] Times, [Description("除")] Divided /// <summary> /// 简单计算器:计算两个值的运算 /// </summary> /// <param name="value1"></param> /// <param name="value2"></param> /// <param name="computeType">计算类型</param> /// <returns></returns> public static double Compute(double value1, double value2, ComputeType computeType) switch (computeType) case ComputeType.Plus: default: return value1 + value2; case ComputeType.Minus: return value1 - value2; case ComputeType.Times: return value1 * value2; case ComputeType.Divided: return value1 / value2; // 默认计算 var result = Compute(520, 1314); // 计算方法的重载 var result2 = Compute(520, 1314, ComputeType.Times);
以上是关于C#参数的重载的主要内容,如果未能解决你的问题,请参考以下文章