使用对象与局部变量& .NET中的参数

时间:2012-11-26 13:26:55

标签: c# asp.net .net

只是想知道为以下场景编写代码的最有效方法是什么......

我有一个简单的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
}

1 个答案:

答案 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 }
}

希望这足以说明我的观点。