2011-03-09 54 views
2

我在一个类中有大约80个属性,我将每个值赋给另一个类。我想把值放到一个类中,然后将这个类传递给一个方法,在这个方法中我将每个属性保存到一个数据库表中。c# - 将一个类传递给一个方法

我该怎么做?

编辑: 如果我想将所有属性放入列表中,我该怎么办?我是否将它们放在属性类或其他方法的列表中?

在此先感谢。

+5

80个属性的类? – 2011-03-09 21:19:54

+2

你怎么做*什么*?创建一个类并将其传递给一个方法,或者获取该对象并坚持到数据库?你有什么麻烦?编辑你的问题,并非常清楚。 – 2011-03-09 21:24:15

回答

3

听起来就像你正在创建什么通常被称为数据传输对象或DTO。

80性质听起来有点疯狂....

道歉,我没有我的IDE方便上我的iPad,但基本上像

class DTO 
{ 
//All you properties go here 
} 

class databaseConnector 
{ 
    public void saveToDB (DTO dto){ 
     //whatever you want to do here... 
    } 
} 
+0

+1:只适用于“有点疯狂”。 – Richard 2011-03-11 18:06:39

3

如果你问有关如何将类传递给方法,你需要有类方法签名的一部分,然后把类的方法的您的实例:

方法签名:

public void exampleMethod(YourClassName classVariable) 
{ 
    //Do your database stuff here 
} 

变量声明

YourClassName exampleClass = new YourClassName(); 

你有什么需要用它来初始化或设置变量,然后打电话给你的方法,并把它传递给它:

exampleMethod(exampleClass); 
+0

当调用'exampleMethod(exampleClass)'时,是不是由exampleClass组成的副本?但是,如果我将方法签名更改为'public void exampleMethod(ref YourClassName)',那么内存位置会更改,并且不会复制副本。在我的理解中,我在这里纠正? – 2012-07-30 12:57:51

+0

@Jim Lahman是的,这是正确的,但在Class的情况下,它是一个引用类型,所以即使按值传递,也只是创建对该对象的引用。如果指向与原始对象相同的对象,那么如果您不小心,则可以更改原始对象上的内容。 Jon Skeet的一篇很好的文章在http://www.yoda.arachsys.com/csharp/parameters.html – nickmoriarty 2012-07-30 16:58:24

相关问题