构造函数的执行序列

weikeni19 2016-01-04 02:31:21

请问我划下来的第2句是什么意思啊?最好举个例子 谢谢啦
...全文
115 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzelin 2016-01-05
  • 打赏
  • 举报
回复
引用 12 楼 weikeni19 的回复:
[quote=引用 9 楼 youzelin 的回复:] 怎么那么啰嗦,人家的问题很清楚,你们只要告诉他:这个指的是调用父类构造函数不就完了吗?
你有什么资格说人家啰嗦 你这种人我最看不起[/quote] 你这种人,我都不想说什么,他们说这么多,我觉得会把你绕晕了,我觉得清晰的解释就是调用父类构造函数,这是最简单直接明了的回答,我是站在你的角度为你说话,狗咬吕洞宾!话都不会听,真是个让人无语的傻帽。我的那句解释说错了吗?! 顺便说一句,: base() 这种东西,百度一下再来问,有些东西不要张嘴就来,不是每次问这种问题都会有人搭理你的。拍人家马屁不用这么拍。像你问的这种问题,网上随便抓抓一大把。 而且,我根本没有说人家,不要说什么资格不资格,你有什么资格看不起我?我还看不起你呢,呵呵。
weikeni19 2016-01-05
  • 打赏
  • 举报
回复
引用 9 楼 youzelin 的回复:
怎么那么啰嗦,人家的问题很清楚,你们只要告诉他:这个指的是调用父类构造函数不就完了吗?
你什么意思 别当我看不出来 天下为你是从是吧? 自己反省去 想好好的过日子 就齐心放了我
weikeni19 2016-01-05
  • 打赏
  • 举报
回复
引用 9 楼 youzelin 的回复:
怎么那么啰嗦,人家的问题很清楚,你们只要告诉他:这个指的是调用父类构造函数不就完了吗?
你有什么资格说人家啰嗦 你这种人我最看不起
Poopaye 2016-01-04
  • 打赏
  • 举报
回复
class BaseClass
{
	public BaseClass()
	{
		Console.WriteLine("BaseClass");
	}

	public BaseClass(string text)
	{
		Console.WriteLine("BaseClass:" + text);
	}
}

class DerviedClass1 : BaseClass
{
	public DerviedClass1()
	{
		Console.WriteLine("DerviedClass1");
	}

	public DerviedClass1(string text)
	{
		Console.WriteLine("DerviedClass1:" + text);
	}
}

class DerviedClass2 : BaseClass
{
	public DerviedClass2()
		: this("No Parameter")
	{
		Console.WriteLine("DerviedClass1");
	}

	public DerviedClass2(string text)
		: base(text)
	{
		Console.WriteLine("DerviedClass2");
	}
}
执行下面的代码
new DerviedClass1();
Console.WriteLine();
new DerviedClass1("1");
Console.WriteLine();
new DerviedClass2();
Console.WriteLine();
new DerviedClass2("2");
输出结果
BaseClass
DerviedClass1

BaseClass
DerviedClass1:1

BaseClass:No Parameter
DerviedClass2
DerviedClass1

BaseClass:2
DerviedClass2
然后你自己理解下
youzelin 2016-01-04
  • 打赏
  • 举报
回复
怎么那么啰嗦,人家的问题很清楚,你们只要告诉他:这个指的是调用父类构造函数不就完了吗?
xdashewan 2016-01-04
  • 打赏
  • 举报
回复
引用 6 楼 weikeni19 的回复:
什么叫配置啊?
配置就是设置调用的是base也可以调用this,可以调用this一个参数构造函数也可以调用this带二个三个的
crystal_lz 2016-01-04
  • 打赏
  • 举报
回复
引用 6 楼 weikeni19 的回复:
什么叫配置啊?
不知道。。。 但是我知道 就算是你把每个字都扣出来理解透彻 也不代表你能写程序 我以前去面试过一些小公司 因为没有文凭 也没有工作经验 就只能去小公司试试运气 又是野路子出生的码农 所以只能去小公司试试运气 他们就特爱问这样的问题 【什么什么是什么】【什么和什么有什么区别】【你怎么理解什么什么】全扯这些理论 然而我按照我的理解描述 却完全没有用 因为他们只知道【标准答案】一堆专业术语组成的回答 所以我的面试 基本重来都是失败的 但是这也不能代表 我写不出程序 道理就是这么简单
crystal_lz 2016-01-04
  • 打赏
  • 举报
回复

public class Test{
    public Test() : this(1){
        int b = 1;
    }
    public Test(int a){
        
    }
}
new Test();
//如果你单步执行 你会看到代码先跳到【Test(): this(1)】
//F11 然后进入 Test(int) 构造器
//执行完成后 再跳回 Test() 继续执行 int b = 1;
xdashewan 2016-01-04
  • 打赏
  • 举报
回复
这句话的重点在base()和this(1),前者是调用父类构造函数,后者调用自己重载的构造函数
weikeni19 2016-01-04
  • 打赏
  • 举报
回复
这个冒号base() :base()是什么意思啊
weikeni19 2016-01-04
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
类似这样

        public frmMain()
            : base()
        {
            InitializeComponent();
        }

        public frmMain()
            : this(1)
        {
            InitializeComponent();
        }

        public frmMain(int a)
        {
            InitializeComponent();
        }
举个简单点的例子 麻烦了 要通俗易懂的 最好还能解释这句话
xdashewan 2016-01-04
  • 打赏
  • 举报
回复
类似这样

        public frmMain()
            : base()
        {
            InitializeComponent();
        }

        public frmMain()
            : this(1)
        {
            InitializeComponent();
        }

        public frmMain(int a)
        {
            InitializeComponent();
        }

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧