• 今天工作中遇到了点小麻烦,关于构造函数重载的问题,以前方法重载的时候直接使用相同的函数名传入不同的参数即可。如下面代码: 1 public class UserData 2 { 3 4 5 public bool UpdateUser(string username, ...

    今天工作中遇到了点小麻烦,关于构造函数重载的问题,以前方法重载的时候直接使用相同的函数名传入不同的参数即可。如下面代码:

     1     public class UserData
    2 {
    3
    4
    5 public bool UpdateUser(string username, string password, int age, int sex,int id)
    6 {
    7 return true;
    8 }
    9
    10 public bool UpdateUser(string username,int id)
    11 {
    12 return UpdateUser(username, "", 0, 0,id);
    13 }
    14 }

    当构造函数重载时使用上面的方法就不行了,会报错。如图:

    其中原因我就不多解释了,构造函数是用来实例化的。经过几次尝试终于找到了办法。

     1     public class User
    2 {
    3 /// <summary>
    4 /// 初始化一个空的用户类实例。
    5 /// </summary>
    6 public User()
    7 {
    8
    9 }
    10
    11 /// <summary>
    12 /// 初始化一个包含用户信息的用户类实例。
    13 /// </summary>
    14 /// <param name="username">用户名</param>
    15 /// <param name="password">密码</param>
    16 /// <param name="age">年龄</param>
    17 /// <param name="sex">性别</param>
    18 public User(string username, string password, int age, int sex)
    19 {
    20 this._username = username;
    21 this._password = password;
    22 this._age = age;
    23 this._sex = sex;
    24 }
    25
    26 /// <summary>
    27 /// 初始化一个包含用户名和密码的用户类实例。
    28 /// </summary>
    29 /// <param name="username"></param>
    30 /// <param name="password"></param>
    31 public User(string username, string password)
    32 : this(username,password,0,0)
    33 {
    34 }
    35
    36 private int _id;
    37 private string _username;
    38 private string _password;
    39 private int _age;
    40 private int _sex;
    41
    42
    43 public int Id
    44 {
    45 get { return _id; }
    46 set { _id = value; }
    47 }
    48
    49 public int Sex
    50 {
    51 get { return _sex; }
    52 set { _sex = value; }
    53 }
    54
    55 public int Age
    56 {
    57 get { return _age; }
    58 set { _age = value; }
    59 }
    60
    61 public string Password
    62 {
    63 get { return _password; }
    64 set { _password = value; }
    65 }
    66
    67 public string Username
    68 {
    69 get { return _username; }
    70 set { _username = value; }
    71 }

     

    展开全文
  • 今天工作中遇到了点小麻烦,关于构造函数重载的问题,以前方法重载的时候直接使用相同的函数名传入不同的参数即可。如下面代码: 1 public class UserData 2 { 3 4 5 public bool UpdateUser(string username, ...
  • 方法重载 可以使同一功能适用于各种类型的数据,它是声明两个以上的...如我们定义了swap(ref int a,ref intb)该函数用来实现两个整形变量值的交换,但不会处理浮点型数据,我们在定义一个swap(ref flot a,ref flot
  • C#构造函数重载 2010-11-22 15:19:00
    所以C#构造函数重载相当于不同数量的参数方法重载。 using System; class Animal { public string _name; public string _color; public int _speed; public Animal() {...
  • C# 构造函数重载 2010-09-14 13:44:00
    是关于构造函数重载!其实以前学校C ++ 的时候已经学过。但是现在再看C#的时候,虽然是一样的,但是还是有很多没明白。比如下面的一个问题还是经过调试后,才发现的。虽然问题不大,不过如果用手写的话,就会造成...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text;...namespace _0703_构造函数重载 { //构造函数:创建一个对象(实例化类)、可以为对象赋初始值 class Program ...
  • c#则属于面向对象的编程语言,相信看此片博客的同伴们应该已经了解面向对象以及他的三大特性:多态,封装,继承了吧,今天小智对此也不做太多介绍了,小智今天要跟大家分享的是c#构造函数的定义,重载以及继承。...
  • 自我理解:重载:在同一类中,参数不同的同名函数,主要用于传入不同参数时执行执行不同的效果。例如:一对重载函数,一个参数传入字符串,另一个传入整数。using System.Collections.Generic; using System.Linq...
  • C#构造函数的特性一、 什么是C#构造函数?Construct,Function  C#构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化.  C#构造函数具有一些特殊的性质:  (1)C#构造...
  • C#构造析构this重载赋值 2019-02-25 23:49:17
    1.构造函数和析构函数:对对象进行初始化和回收对象资源。对象生命周期以构造函数开始,以析构函数结束。构造函数、析构函数与所在类具有相同名字,析构函数名前有(~),析构函数自动释放对象所占空间。 构造函数...
  • C#构造函数、继承与多态 2020-02-26 18:50:16
    构造函数 构造函数就是一个对象的初始操作的函数,new对象()的时候调⽤,方法名必须与类一样,且没有...构造函数是可以重载的,如果想在执行当前构造函数之前,先执行构造函数:当前构造函数(…) : this(传实参) ...
  • 默认构造函数都从父类object继承了无参的构造方法。 1、类在初始化实例化对象(new)的时候将默认调用的是类中的默认构造函数(即无参的构造函数); 2、为方便初始化数据,通常会构造函数(即构造函数需要带参数,...
  • 构造函数的二义性 2016-10-21 15:29:53
    (注意:一个类显式地声明了任何构造函数,编译器不生成公有的默认构造函数)所以只要显示的定义构造函数,系统就不会生成默认的构造函数。 2.二义性的产生 class Complex { public: Complex(); Compl
  • C# 构造函数的使用方法 2019-08-09 04:44:30
    C#构造函数是一个特殊的类方法。在很多方面,包括访问修饰符、重载以及参数列表的语法等方面,构造函数与普通的方法是类似的。然而,在使用方面以及行为方面,构造函数也具有许多特殊的语法和语义规则。 下面列出C#...
  • C#构造函数及其函数的重载 构造函数可以初始类,函数重载可以实现多态。构造函数: 1、函数名与类名一致 2、没有返回值,也没有void 3、构造函数重载 参数个数不同,类型不同,顺序不同 class Book { public ...
  • 特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数重载,类的构造函数是类的一个特殊的成员函数,当创建类的新对象时执行。当实例化一个类对象的时候自动调用这个...
  • C#中,构造函数可以使用 this 关键字调用同一对象中的另一构造函数。和 base 一样,this 可带参数使用也可不带参数使用,构造函数中的任何参数都可用作 this 的参数,或者用作表达式的一部分。namespace ...
  • C#构造函数(方法)的详细讲解 1、什么是构造(方法)函数? ​ 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个...
1 2 3 4 5 ... 20
收藏数 34,571
精华内容 13,828