C# 此成员被定义多次,但为什么?
我有一个像这样的php代码,我需要将其转换为.NETC# 此成员被定义多次,但为什么?,c#,c#-4.0,C#,C# 4.0,我有一个像这样的php代码,我需要将其转换为.NET function jaktDate2() { Global $nameofselectbox,$startYear,$endYear,$year, $startDate,$endDate,$startMounth,$endMounth,$startDay,$endDay; $today = getdate(); $year=$today['year']; $mounth=$today['mon']; $day=$today['mday'];
function jaktDate2()
{
Global $nameofselectbox,$startYear,$endYear,$year,
$startDate,$endDate,$startMounth,$endMounth,$startDay,$endDay;
$today = getdate();
$year=$today['year'];
$mounth=$today['mon'];
$day=$today['mday'];
//$year="2004";
//$mounth="7";
//$day="1";
if(round($mounth)<="6"){$startYear=$year-1;$startMounth="-07";$startDay="-01";
$endYear=$year;$endMounth="-06";$endDay="-30";}
elseif(round($mounth)>="7"){$startYear=$year;$startMounth="-07";$startDay="-01";
$endYear=$year+1;$endMounth="-06";$endDay="-30";}
$startDate=$startYear.$startMounth.$startDay;
$endDate=$endYear.$endMounth.$endDay;
return $startDate.";".$endDate;
}
问题是:此成员定义了多次
在这里,红色下划线的startyear startmonth startday&以及其他部分。因为您已经定义了公共字段
StartDate
和属性StartDate
,所以不能这样做
public DateTime StartDate;
public DateTime StartDate
{
get { return _startDate;}
set { _startDate = value;}
}
如果您只打算使用StartDate
作为属性,那么您可以去掉公共字段,即public DateTime StartDate代码>
似乎您正在针对每个公共字段定义属性。这是一个语法错误。您可以删除所有公共字段,并且由于您没有在属性中执行任何操作,因此可以将它们定义为:
public DateTime StartDate { get; set; }
我们以StartYear
为例:
// Field declaration
public string StartYear;
// Property declaration with the same name
public string StartYear
{
get { return _startYear;}
set { _startYear = value;}
}
既然还有公共属性支持的私有字段,为什么还要有公共字段呢?把那些公共场地处理掉
更广泛地说,我不会尝试从另一个平台进行代码的逐字移植-我会尝试找出目的,然后在.NET代码中以惯用的方式实现它。您前面已经声明了StartDate
。您正试图在显示错误的部分重新声明它。如果您有public DateTime EndDay,我很不明白为什么代码>您需要任何副本,如StartYear
,StartMonth
,等等-似乎非常多余。这是一种家庭作业吗?为什么你反复问同一个问题@L.B不是家庭作业。这是我们的作业。(大学)…但我不知道谁在发帖。当我实施时,我发帖遇到了麻烦here@L.B在这所大学的工作中,我也尝试了一下,当我遇到麻烦时,我会发布代码。。否则我就不是那种只发布php代码并要求你们将其转换为的人。你是说我需要将这些属性重新定义为public DateTime StartDate{get;set;},而不是我的属性集?@expert9,哪个属性集?您之前已经定义了公共字段,现在正在定义属性public DateTime StartDate{get;set;}
是以C#3.0开头的,我还不清楚。我只是定义了属性&之后,我实际上想给这个函数分配3个值,比如DateTime StartDate=(StartYear+StartMonth+StartDay);但这又不是定义知道吗?因为你不能用三个字符串连接起来来构造这样的日期。你需要一本C#的书,开始阅读基础知识。Habib.OSU这个问题我不能再深入了。你能告诉我需要重写哪些内容吗?@expert9我认为Habib的答案为你指明了正确的方向。
public DateTime StartDate { get; set; }
// Field declaration
public string StartYear;
// Property declaration with the same name
public string StartYear
{
get { return _startYear;}
set { _startYear = value;}
}