c#怎么调用类里的成员?
class GlobalVariable { static public Hashtable table = new Hashtable(); private GlobalVariable() { }
public static object GetValue(object akey) { return table[akey]; } public static void SetValue(int akey, object avalue) { table[akey] = avalue; } public static void Remove(object akey) { table.Remove(akey); } }调用过程: GlobalVariable.SetValue( 1,"txtData.Text");//把数据存进table[1]; GlobalVariable.GetValue(1);//取出数据,放到table[1] GlobalVariable.table[1];//这里不应该是数据了吗?但是提示错误错误 CS0201: 只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句
答案:动态类,new一个类的实例,就可以用 “实例名.成员”名来调用了。静态类,直接用 ”类名.成员名“ 就可以调用了。
动态方法与静态方法的区别:
1,使用方法上的区别:
动态方法,在使用时需要先创建实例,才能调用实例方法,而静态方法则不需要,直接使用即可。
示例代码如下:
静态方法不需要实例化类就能调用
class ClassA
{
public static string MethodB()
{
return "Hello World";
}
}
用法:
ClassA.MethodB(); //调用方便
动态的方法在使用前,必须先实例化类
class ClassA
{
public string MethodB()
{
return "Hello World";";
}
}
用法:
ClassA A=new ClassA();
A.MethodB();
2,性能上的区别:
静态方法效率要稍微高一些,但是它会常驻内存,占用内存空间,而动态方法在调用完后会自动释放,节省内存空间。
什么情况下使用动态方法,什么情况下使用静态方法:
1,使用静态方法是有好处的,因为静态方法只维护一份拷贝,所以无论你有多少个实例,内存中都只会有一份拷贝。
2,使用频繁的方法用静态方法,比如数据库操作类,我们就是使用静态方法。使用的少的方法用动态的。因为静态的速度快,但占内存,就像是缓存一样,经常用的数据我们应该应该将它们缓存起来。动态方法的调用速度相对慢些,但调用完后,会立即释放类,节省内存。
用户可以根据自己的需要选择是用动态方法还是静态方法。
本文来源于: http://www.lmwlove.com/ac/ID538
class GlobalVariable 改成 public class GlobalVariable
这是静态的,当然不能实例,直接取就行,当成构造方法
你这个是静太方法,需要静态类调用。public static class GlobalVariable {}
上一个:c# 中的dataset是什么?
下一个:C# 启动调试时, 缺少调试目标