-1

このような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;
}

ここに私の変換があります:

  public class HuntingDate
    {
        public string StartYear;
        public string EndYear;
        public string Year;
        public DateTime StartDate;
        public DateTime EndDate;
        public string StartMonth;
        public string EndMonth;
        public DateTime StartDay;
        public DateTime EndDay;

        private string _startYear;
        public string StartYear
        {
            get { return _startYear;}
            set { _startYear = value;}
        }

        private string _endYear;
        public string EndYear
       {
        get{return _endYear;}
        set { _endYear = value; }
       }


        private DateTime _startDate;
        public DateTime StartDate
        {
            get { return _startDate;}
            set { _startDate = value;}
        }

        private DateTime _endDate;
        public DateTime EndDate
        {
            get { return _endDate;}
            set { _startDate = value;}
        }

        private string _year;
        public string Year
        {
            get { return _year;}
            set { _year = value;}
        }


        private string _startMonth;
        public string StartMonth
        {
            get { return _startMonth;}
            set { _startMonth = value;}
        }

        private string _endMonth;
        public string EndMonth
        {
        get { return _endMonth;}
        set { _endMonth = value;}
        }

        private DateTime _startDay;
        public DateTime StartDay
        {
            get { return _startDay;}
            set { _startDay = value;}
        }

        private DateTime _endDay;
        public DateTime EndDay
        {
            get { return _endDay; }
            set { _endDay = value; }
        }

        public HuntingDate(){
        DateTime today = DateTime.Now;
        int year = today.Year;
        int month = today.Month;
        DateTime day = today;

        DateTime StartDate = (StartYear+StartMonth+StartDay);
        DateTime EndDate   = (EndYear+EndMonth+EndDay);

        if (month <= 6)
        {
            //string StartYear = Convert.ToString(year-1);
            string StartYear = (year - 1).ToString();
            string StartMonth = Convert.ToString(7);
            string EndYear = Convert.ToString(year);
            string EndMonth = Convert.ToString(6);
            string EndDay = Convert.ToString(30);
        }
        else if(month >= 7)

        {
            string StartYear =Convert.ToString(year);
            string StartMonth = Convert.ToString(7);
            string StartDay = Convert.ToString(1);
            string EndYear = Convert.ToString(year+1);
            string EndMonth = Convert.ToString(6);
            string EndDay = Convert.ToString(30);

        }
        }
        }

        }

ここで見つけた問題:

        DateTime StartDate = (StartYear+StartMonth+StartDay);
        DateTime EndDate   = (EndYear+EndMonth+EndDay);

問題は次のとおりです:このメンバーは複数回定義されています

ここで赤い下線が引かれた startyear startmonth startday とその他の部分。

4

3 に答える 3

5

public fieldStartDateと propertyを定義しているためStartDate、それはできません

public DateTime StartDate;

public DateTime StartDate
        {
            get { return _startDate;}
            set { _startDate = value;}
        }

プロパティとしてのみ使用する場合StartDateは、パブリック フィールドを取り除くことができますpublic DateTime StartDate;

各パブリック フィールドに対してプロパティを定義しているようです。これは構文エラーです。すべての public フィールドを取り除くことができます。プロパティで何もしていないので、次のように定義できます。

public DateTime StartDate { get; set; }
于 2012-06-14T08:21:07.230 に答える
5

StartYear例としてよく見てください:

// Field declaration
public string StartYear;

// Property declaration with the same name
public string StartYear
{
    get { return _startYear;}
    set { _startYear = value;}
}

public プロパティに裏打ちされた private フィールド持っているのに、なぜ public フィールドを持っているのでしょうか? それらのパブリックフィールドを取り除くだけです。

より広い意味で言えば、私は別のプラットフォームからコードを逐語的に移植しようとはしません。意図を理解し、それを慣用的な方法で .NET コード内に実装しようとします。

于 2012-06-14T08:21:35.530 に答える
1

あなたはすでにStartDate以前に宣言しました。エラーが表示されている部分で再宣言しようとしています。

于 2012-06-14T08:21:39.587 に答える