我有这样的PHP代码,将其转换为C#。
function HuntingDate()
{
Global $nameofselectbox,$startYear,$endYear,$year,
$startDate,$endDate,$startMounth,$endMounth,$startDay,$endDay;
$today = getdate();
$year=$today['year'];
$mounth=$today['mon'];
$day=$today['mday'];
这是我的尝试(我尝试使用枚举)
public enum HuntingDate{string StartYear,string EndYear,string Year,string StartDate,string EndDate,string StartMonth,string EndMonth,stirng StartDay,string EndDay}
我能用enum做这个吗?我收到错误“标识符预期,字符串是关键字”
答案 0 :(得分:3)
public class HuntingDate
{
string StartYear;
string EndYear;
string Year;
string StartDate;
string EndDate;
string StartMonth;
string EndMonth;
string StartDay;
string EndDay;
}
然后你需要考虑进一步的事情:
字符串不适合日期类型数据,因此请考虑使用DateTime - 您可以将年,月和日值合并为一个property:
public class HuntingDate
{
public DateTime StartDateTime;
public DateTime EndDateTime;
}
类用于定义对象的结构,正如我的示例所示,您需要create an instance of the class才能使用它:
HuntingDate huntingDate = new HuntingDate();
有了这个,你必须考虑你想要访问它的位置。如果您需要一个全局可访问的实例,您可以在全局范围级别初始化该类,或者考虑使用static class(尽管应该注意这些值将在整个应用程序中保持不变):
public static class HuntingDate
{
public static string Something;
}
我强烈建议你在C#上做一些阅读(获得a book!)如果你想更认真地做这件事你应该扎实地掌握C#的基础知识
答案 1 :(得分:1)
否,您可以使用枚举执行此操作。默认情况下,枚举中每个元素的基础类型是int。 您可以使用冒号指定另一个
integral numeric
类型 如下例所示。有关可能类型的完整列表,请参阅enum(C# 参考)。
示例:
enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };
public struct HuntingDate
{
int StartYear;
int StartMonth;
int StartDay;
int Year;
DateTime StartDate; // it smells like you are storing date then why do
// you not use DateTime rather than these..
DateTime EndDate;
int EndYear;
int EndMonth;
int EndDay;
}
如果您的Year
没有必要,那么它可以缩短为:
public struct HuntingDate
{
public DateTime StartDate;
public DateTime EndDate;
}
其他明智的选择包括Year
。
答案 2 :(得分:1)
我想你想要(字符串)值“StartYear”,“EndYear”等等作为枚举的值。 你不能这样做:枚举总是基于某种整数类型。
答案 3 :(得分:1)
我认为你最好在开始日期和结束日期使用DateTime类型,并将它们全部包含在类似这样的类中:
public class HuntingDate
{
public HuntingDate(DateTime start, DateTime end)
{
_start = start;
_end = end;
}
public DateTime End
{
get
{
return _end;
}
}
public DateTime Start
{
get
{
return _start;
}
}
private readonly DateTime _start;
private readonly DateTime _end;
}
答案 4 :(得分:1)
function HuntingDate()
{
Global $nameofselectbox,$startYear,$endYear,$year,
$startDate,$endDate,$startMounth,$endMounth,$startDay,$endDay;
$today = getdate();
$year=$today['year'];
$mounth=$today['mon'];
$day=$today['mday'];
... rest of code
}
我猜你需要一个班级(而不是enum)
public class HuntingDate()
{
string NameOfSelectbox;
DateTime endDate;
rest of code ...
}
答案 5 :(得分:-1)
我看到有很多答案,什么是最好的答案?