只是想知道为以下场景编写代码的最有效方法是什么......
我有一个简单的Web表单,它收集数据然后将其插入数据库。以下哪个例子最有效或更好?为什么?
我目前正在使用第一个场景的版本(但有更多字段和正确的HTML编码等)。我发现阅读起来比较干净,但是它会过度消耗或浪费性能和质量代码?
代码情景1
void GetData() {
FormResponse myFormResponse = new FormResponse();
FormResponse.Name = txtName.Text;
FormResponse.Email = txtEmail.Text;
FormResponse.Message = txtMessage.Text;
StoreData(myFormResponse);
}
void StoreData(FormResponse myFormResponse) {
... //Database connection code
DbCommand.Parameters.AddWithValue("@Name", myFormResponse.Name);
DbCommand.Parameters.AddWithValue("@Email", myFormResponse.Email);
DbCommand.Parameters.AddWithValue("@Message", myFormResponse.Message);
...//More DB handler code
}
Public Class FormResponse {
public string Name { get; set; }
public string Email { get; set; }
public string Message { get; set; }
}
代码情景2
void GetData() {
string strName = txtName.Text;
string strEmail = txtEmail.Text;
string strMessage = txtMessage.Text;
StoreData(strName, strEmail, strMessage);
}
void StoreData(string strName, string strEmail, string strMessage) {
... //Database connection code
DbCommand.Parameters.AddWithValue("@Name", strName);
DbCommand.Parameters.AddWithValue("@Email", strEmail);
DbCommand.Parameters.AddWithValue("@Message", strMessage);
...//More DB handler code
}
答案 0 :(得分:0)
在对这样的事情进行编码时,您应该始终考虑长期运行,始终使您的程序尽可能可扩展,并为未来的开发人员提供可读性。是的,总是考虑性能,但在这种情况下,性能差异(如果有的话)非常简单。
始终记住以对象为导向的代码,因此第一种方法将是我理想的选择,FormResponse对象位于Models类中。想象一下,如果你有两个表单,你可以轻松地重用这个对象,如果你需要发送附加到这个单独对象的任何额外数据,函数调用仍然适用,即私有函数(objectName)永远不会改变。
正如我所说,总是考虑你所做的一切的可扩展性。如果您需要在响应函数中使用您的名称格式化,只需执行以下操作:
public FormRespose()
{
public string Name {get; set;}
public string FirstName { // use Name here to get first name from it, or turn uppercase, lowercase, whatever }
}
希望这足以说明我的观点。