在我的应用程序中,以下是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 :(得分:1)
目前尚不清楚你要求的是什么,但可能你需要这样的东西:
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
.....
}
如果这不是您所要求的,请澄清。
编辑
如果您遇到的问题是从UI上的string
转换为实际数据类型,则需要构建一个类型实例,在这种情况下您可以使用:
DateTime.Parse - 从字符串解析为DateTime
格式
和
int.TryParse - 解析integer
个值。
答案 1 :(得分:1)
转换的简单方法是执行此操作
DateTime dtStartTime = DateTime.Parse(starttime);
DateTime dtStopTime = DateTime.Parse(stoptime);
int intTask = Int32.Parse(task);
int intProject = Int32.Parse(project);
但是,这假设DateTime格式正确,task
和project
是有效整数。您需要添加自己的错误处理,这样做的好方法是查看DateTime.TryParse或DateTime.TryParseExact方法和Int32.TryParse方法。
例如,
int intTask;
if(Int32.TryParse(task, out intTask))
{
//parse successful
}
else
//parse unsuccessful
答案 2 :(得分:0)
如果要将字符串转换为其他数据类型,则可以使用一些选项,可用的方法也取决于目标类型。 (Worth a read)
我在这个例子中推荐的功能是:DateTime.ParseExact
和int.Parse
以下是如何使用每个的示例:
int convertedInt = int.Parse(myIntString);
DateTime convertedDateTime = DateTime.ParseExact(myDateString, "dd/MM/yyyy", null);
然后,您可以将这些值传递给您的函数。
注意:我假设您的日期格式为dd/MM/yyyy
- others are available
重要的是要知道如果其中一个字符串不是预期的格式,你就会得到异常。建议在调用这些方法之前验证输入字段。值得注意的是,每种方法都有Try
个方法:DateTime.TryParseExact
和int.TryParse
,如果格式无效,您可以采取措施。