2012-06-12 55 views
0

我有这样的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} 

我可以做thisone与枚举?我得到了错误“标识符预期,String是一个关键字”

+1

这是什么'stirng StartDay' ... – dtsg

+2

为什么一切都是'串'?你有这么多有趣的数据类型可用......另外,这似乎与“enum”无关。这可能是你误解了'enum'关键字。 –

回答

3

无不是与enum,你应该使用这个class

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

那么你有进一步的事情要考虑:

  1. 字符串对于日期类型数据并不理想,因此考虑使用DateTime - 借此,您可以将年,月和日值合并为一个property

    public class HuntingDate 
    { 
        public DateTime StartDateTime; 
        public DateTime EndDateTime; 
    } 
    
  2. 类是用来定义对象的结构,我的例子代表你需要create an instance of the class为了使用它:

    HuntingDate huntingDate = new HuntingDate(); 
    

    这个你必须要考虑,你想拥有访问它。如果你需要一个全局可访问的情况下,你可以在全球范围内级别初始化类,或考虑使用static class(但应注意,这些值将在整个应用程序被持久化):

    public static class HuntingDate 
    { 
        public static string Something; 
    } 
    
  3. 我强烈建议做C#的一些阅读(获得a book!)如果你想这样做,更严重的是你应该得到的C#

+0

+1作为一个缪斯粉丝 –

+0

那么它应该是公共类HuntingDate(){StartYear datetime}我是否正确? – TechGuy

+1

@ChathuraRanasinghe:不确定你的意思?有编辑点1作为我最好的猜测你的问题是什么 – musefan

1

没有基础知识的扎实掌握,你可以d这与枚举。默认情况下,枚举中每个元素的基础类型是int。 可以通过使用一个冒号指定另一个integral numeric型,如下面的例子所示 。有关可能类型的完整列表,请参见枚举(C# 参考)。

例子:

enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }; 

您可以使用structclass类型用于这一目的。

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

1

我想你想(字符串)值“StartYear”,“EndYear”等作为一个枚举的值。 你不能这样做:枚举总是基于某种整数类型。

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; 
} 
1

熊我心目中,我不知道从PHP ......那么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 
} 

我guesstimating你需要一个类(而不是enum

public class HuntingDate()  
    { 
    string NameOfSelectbox; 
    DateTime endDate; 

    rest of code ... 
    } 
-1

我看到有很多答案,最好的答案是什么?

+0

仍然我试图做一个一个,如果任何人你能告诉我什么是宝石我可以直接尝试它,无论如何,我会尝试并通知在这里 – TechGuy

相关问题