Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 此成员被定义多次,但为什么?_C#_C# 4.0 - Fatal编程技术网

C# 此成员被定义多次,但为什么?

C# 此成员被定义多次,但为什么?,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'];

我有一个像这样的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'];
//$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;}
}