2013-07-08 26 views
-1

在我的应用程序下面的参数传递的getter/setter方法:问题与

private string client { get { return ClientText.Text; } set { ClientText.Text=value;} } 
    private string application { get { return ApplicationText.Text; } set { ApplicationText.Text = value; } } 
    private string starttime { get { return StartTimeText.Text; } set { StartTimeText.Text = value; } } 
    private string stoptime { get { return StopTimeText.Text; } set { StopTimeText.Text = value; } } 
    private string task { get { return TaskText.Text; } set { TaskText.Text = value; } } 
    private string project { get { return ProjectText.Text; } set { ProjectText.Text = value; } } 

我想这6个值传递给下面,

Harvest_TimeSheetEntry entry=new Harvest_TimeSheetEntry(string,string,DateTime,DateTime,int,int); 

我应该如何转换的6处房产,并传递给那个函数/构造函数?

+0

你想传递值或类型吗?这是ambigious – wudzik

+0

我想通过那些提到的6个值,但是,他们的类型应该如构造函数中所示。 – Dinesh

+1

使用['DateTime.ParseExact'](http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx)和['int.Parse'](http://msdn.microsoft.com/zh-cn/ -us/library/system.int32.parse.aspx) – musefan

回答

1

目前还不清楚你问什么exaclty,但可能你需要的东西,如:

var entry = new Harvest_TimeSheetEntry() { 
    client = ClientName, //CLIENT NAME YOU INTEND TO PASS TO CTOR 
    starttime = startDateTime.ToString() //DATE TIME YOU INTEND TO PASS TO CTOR 
    ..... 
} 

如果这不是你问什么,请澄清。

编辑

如果你面临的问题是从string在UI实际数据类型需要转换为构造类型的实例,在这种情况下,你可以使用:

DateTime.Parse - 以解析从字符串DateTime格式

int.TryParse - 解析integer值。

+0

'starttime'被定义为一个字符串 – musefan

+0

@musefan:为此,我调用ToString()将它分配给一个字符串属性 – Tigran

+0

很确定他希望将6个字符串属性传递给他定义的方法。因此,“我应该如何转换这6个属性并传递给该函数/构造函数?” – musefan

1

转换的最简单的方法是做这个

DateTime dtStartTime = DateTime.Parse(starttime); 
DateTime dtStopTime = DateTime.Parse(stoptime); 
int intTask = Int32.Parse(task); 
int intProject = Int32.Parse(project); 

然而,这种假定日期时间是在正确的格式和taskproject是有效的整数。您需要添加自己的错误处理方法,并且这样做的好方法是查看DateTime.TryParseDateTime.TryParseExact方法和Int32.TryParse方法。

例如,

int intTask; 
if(Int32.TryParse(task, out intTask)) 
{ 
    //parse successful 
} 
else 
    //parse unsuccessful 
+0

对不起。开始时间,停止时间,任务,项目都是属性。你不能用属性来做到这一点。 – Dinesh

+0

@Dinesh - 为什么不能使用属性? – keyboardP

-1

Whar你需要的是也许是因为字符串属性,例如适当的解析器对于int是int.Parse(string s)你需要什么,DateTime.Parse(string)然后是DateTime。

0

如果您想将字符串转换为另一种数据类型,那么您可以使用一些选项,并且可用的方法也取决于目标类型。 (Worth a read)

我会建议在这种情况下的功能是:DateTime.ParseExactint.Parse

下面是如何使用每一个例子:

int convertedInt = int.Parse(myIntString); 

DateTime convertedDateTime = DateTime.ParseExact(myDateString, "dd/MM/yyyy", null); 

然后,您可以通过这些值的功能。

注:我假设你的日期格式为dd/MM/yyyy - others are available

知道,你也得到一个异常,如果任一字符串的预期格式都不是很重要的。建议您在调用这些方法之前验证您的输入字段。还值得注意的是,有Try方法可用于每个:DateTime.TryParseExactint.TryParse,它们允许您采取措施,如果格式无效。

+0

这里我的starttime和stoptime是字符串属性。我想转换这些属性的类型。所以,DateTime.ParseExact没有在那里工作。 – Dinesh

+0

@Dinesh:你错了,这可以正常工作。提供你在同一个班级,因为你已经定义你的属性为'私人' – musefan

+0

是@musefan这工作正常。抱歉。 – Dinesh