标识符预期,字符串是一个关键字
本文关键字:一个 关键字 字符串 标识符 | 更新日期: 2023-09-27 18:36:50
我有一个这样的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}
我可以用枚举来做这个吗? 我收到错误"预期标识符,字符串是关键字"
不,不使用枚举,您应该为此使用一个类:
public class HuntingDate
{
string StartYear;
string EndYear;
string Year;
string StartDate;
string EndDate;
string StartMonth;
string EndMonth;
string StartDay;
string EndDay;
}
然后,您还需要考虑其他事项:
字符串对于日期类型数据并不理想,为此请考虑使用 DateTime - 有了这个,您可以将年、月和日值合并到一个属性中:
public class HuntingDate { public DateTime StartDateTime; public DateTime EndDateTime; }
类用于定义对象的结构,正如我的示例所示,您需要创建类的实例才能使用它:
HuntingDate huntingDate = new HuntingDate();
有了这个,您必须考虑要访问它的位置。如果需要全局可访问实例,则可以在全局作用域级别初始化类,或考虑使用静态类(尽管应该注意的是,这些值将在整个应用程序中保留):
public static class HuntingDate { public static string Something; }
我强烈建议你读一些关于C#的书(买一本书!)如果你想更认真地做到这一点,你应该牢牢掌握C#的基础知识
。
我想你想要(字符串)值"开始年份","结束年份"等作为枚举的值。你不能这样做:枚举总是基于某种整数类型。
我认为您最好使用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;
}
不,您可以使用枚举执行此操作。默认情况下,枚举中每个元素的基础类型为 int。 可以使用冒号指定另一种
integral numeric
类型,如 如以下示例所示。有关可能类型的完整列表,请参阅枚举 (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
。
请注意,
我不知道PHP来自...嗯啦...
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
}
我猜你需要一个类(而不是枚举)
public class HuntingDate()
{
string NameOfSelectbox;
DateTime endDate;
rest of code ...
}
我看到有很多答案,最好的答案是什么?