代码如下:控制台程序,真的很奇怪,高手帮忙分析下
using System;
using System.Collections.Generic;
using System.Text;namespace BaseSample
{
class Program
{
static void Main(string[] args)
{
Person my = new Student("王", 19);
}
} class Person
{
private string name;
private uint age; public Person(string sname, uint uage)
{
this.name = sname;
this.age = uage;
Console.WriteLine(name);
Console.WriteLine(age);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;namespace BaseSample
{
class Program
{
static void Main(string[] args)
{
Person my = new Student("王", 19);
}
} class Person
{
private string name;
private uint age; public Person(string sname, uint uage)
{
this.name = sname;
this.age = uage;
Console.WriteLine(name);
Console.WriteLine(age);
}
}
}
解决方案 »
- c# 如何根据窗体句柄获得窗体上Button控件,和执行Button的事件
- DataGridView中的控件如何定义事件?
- 怎样用C#实现闭包的算法?
- MultiPage与TabStrip在vs2005中出现的问题 代码如下为什么没法做像选项卡一样的效果谢谢
- 关于datalist传值的问题,大哥们请帮帮忙吧 急!!!请大哥们在仔细看一下
- C#动态调用C++Dll,如何读取到Dll内的所有函数的信息,包括函数名,参数类型,返回值等
- 关于继承~
- 如何自定义一个控件?如何把TextBox控件变为下划线?
- 大家好..我是来自己广东中山的..以后的日子大家多关照..我有个问题不明白..
- c#如何实现DataGridView翻页显示,winform里面
- 我重写了equal方法后,编译器提示我也得重写gethashcode,这个方法如何写?
- DS缺少using引用
{
this.name = sname;
this.age = uage;
Console.WriteLine(name);
Console.WriteLine(age);
}
请问这是什么?
是重构的构造函数啊
我没有写
public Person()
{
}
这个原始的构造函数,应该是要报错的呀
public Person()
{
}
这个构造函数的
如果我们在类中声明了如下的构造函数,
C(....){..}
它等价于
C(....):base(){....}
using System;
using System.Collections.Generic;
using System.Text;namespace BaseSample
{
class Program
{
static void Main(string[] args)
{
Person my = new Student("王", 19);
Person other = new Person(); //加上这个就出错了
}
} class Person
{
private string name;
private uint age; public Person(string sname, uint uage)
{
this.name = sname;
this.age = uage;
Console.WriteLine(name);
Console.WriteLine(age);
}
}
}
看样子系统还是没有给我自动添加无参数的构造函数,是不是没有使用到无参数构造函数的话就没事情咯。
class Person
{
private string name;
private uint age; public Person(){}
public Person(string sname, uint uage)
{
this.name = sname;
this.age = uage;
Console.WriteLine(name);
Console.WriteLine(age);
}
如果你没写构造函数(注意是没写),那么系统会自动给你加上一个不进行任何操作的无参构造函数。如果你写了,这个默认的构造函数就没了。这是从C++一脉相承的,而C++这么设定的原因是为了和C的结构兼容。