关于struct的多参数构造函数

Sean918 2009-09-19 01:29:43

using System;

namespace Sean.ProcCSharp.Test
{
class oo
{
static void Main()
{
test T = new test();

Console.WriteLine(T.s.Name);
Console.ReadLine();
}
}

class test
{
public int t;

//这里报错 :不包含采用“2”参数的构造函数
public SeanHome s = new SeanHome("四村", "50#202");

/* 改成这样报错: 类、结构或接口成员声明中的标记“=”无效
public SeanHome s = new SeanHome();
s.Name = "四村";
s.Addr ="50#202";
*/
}

public struct SeanHome
{
public string Name;
public string Addr;

SeanHome(string name, string addr)
{
Name = name;
Addr = addr;
}

public string GetName
{
get
{
return Name;
}
}

public string GetAddr
{
get
{
return Addr;
}
}

}
}


如题,我只是想在结构里面定义多参数的构造函数,怎么就不行? 我用的2008
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sean918 2009-09-19
  • 打赏
  • 举报
回复
呃。。。。 我错了, 重载的构造函数是要写public , 我糊涂了

youyuf 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cstod 的回复:]
s.Name = "四村";
        s.Addr ="50#202";
这样的代码只能在“方法”里,怎么能写到类里?
[/Quote]


这样也不会报错,可以作为public型的字段。
但楼主这样写显然是对封装了解得也不是很透!
youyuf 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cstod 的回复:]
public SeanHome(string name, string addr)
        {
            Name = name;
            Addr = addr;
        }

[/Quote]


正解!
看来楼主对C#了解得还不是很深!
Sean918 2009-09-19
  • 打赏
  • 举报
回复
为啥一定要加public ?

构造函数也要public?
xie_yanke 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cstod 的回复:]
//这里报错 :不包含采用“2”参数的构造函数
        public SeanHome s = new SeanHome("四村", "50#202");


我觉得不会抱这个错吧?应该是访问受限制吧?
[/Quote]

是会报这个错,因为他等于private ...没参数的默认SeanHom(), 肯定找不到参数。
CsToD 2009-09-19
  • 打赏
  • 举报
回复
//这里报错 :不包含采用“2”参数的构造函数
public SeanHome s = new SeanHome("四村", "50#202");


我觉得不会抱这个错吧?应该是访问受限制吧?
CsToD 2009-09-19
  • 打赏
  • 举报
回复
public SeanHome(string name, string addr)
{
Name = name;
Addr = addr;
}


s.Name = "四村";
s.Addr ="50#202";
这样的代码只能在“方法”里,怎么能写到类里?
xie_yanke 2009-09-19
  • 打赏
  • 举报
回复
public SeanHome(string name, string addr)
...

110,534

社区成员

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

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

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