静态方法:在这种情况下使用它有危险吗?

时间:2013-03-10 15:48:33

标签: c# static

我有用c#编写的网络应用程序。它由三个项目组成。其中两个是asp.net mvc项目,其中一个是一个简单的项目,只有我在两个mvc项目中使用的类。因此,两个mvc应用程序引用了第三个项目。

我在非mvc项目中有一个静态方法,基本上这样做: 它有两个输入参数:字符串文本,MyEntities db。 MyEntities是我的数据库的一个实例,即.edmx文件。

在方法中,我解析文本,将其分成单独的行,得到它们的一部分。对于那部分,根据用户的不同,我检查db.tblToy中是否有一个带有该名称的记录。

对于每个用户,都有一个不同的数据库。 所以,我接受user_id并根据它,我在tblToy表中搜索相应的db。危险我的意思是,如果方法返回不正确的结果。例如,对于user1,它将在db2中检查user2,因为它是静态的。

该方法是静态的。我没有用类实例调用它。我的问题是:这种方法是静态的吗?

2 个答案:

答案 0 :(得分:1)

不,它是静态的事实并不比它作为实例方法更危险。你在这种方法中投入的是重要的。

静态方法和实例方法的唯一区别在于,您需要在类的实例上调用一个,而另一个只在类型本身上调用。

来自主人的

This answer可能有所帮助:

  

静态方法本质上不是线程安全的。他们没有受到任何待遇   CLR与实例方法不同。

答案 1 :(得分:1)

不,如果静态方法仅从参数处理信息,则在此方案中没有危险。 当方法处理静态变量/自动实现的属性

时,游戏会发生变化