C# 怎么修改静态类中的 静态私有成员的值啊。急。。。
C# 怎么修改静态类中的 静态私有成员的值啊。急。。。
public class A{
private string str="sss";}
}
public class B{
public B(){
//应该怎去修改A类中str的值。
}
}
--------------------编程问答-------------------- 你这个成员不是静态的私有成员,既然把成员定义为私有的,那么你就不应该从外边去直接修改它,否则你应该把他定义为public,
如果定义为私有,那么应该由A类自己的方法来修改,你可以在A类中定义一个public方法,比如常见的setter方法,去修改str,然后让B类调用A类的public方法来间接的修改str,
其实如果str是私有的,那么B类应该察觉不到str的存在,B类根本不应该知道A类内部有一个str这样的成员,这是oop封装的信息隐藏规则,A类应该把尽可能多的细节隐藏起来,B不应该去试图知道A内部有什么,如何实现这些细节,
--------------------编程问答-------------------- 你这是实例成员 --------------------编程问答-------------------- 你这是实例成员 --------------------编程问答-------------------- public class A{
private static string str="sss";}
}
public class B{
public B(){
//应该怎去修改A类中str的值。
}
}
是这样的。刚少写了个 static --------------------编程问答-------------------- public class A{
private static string str="sss";}
}
public class B{
public B(){
//应该怎去修改A类中str的值。
}
}
是这样的。刚少写了个 static --------------------编程问答-------------------- 要改变A类中私有变量的值,不行吧。
静态变量的public访问 A.str直接访问的。私有根本访问不到。
其实你就是要看str值用在什么地方,最简单
public class A
{
public A(string newvalue)
{
str = newvalue;
}
private static string str;
}
public class B
{
public B(){
A a = new A("aaaa");
}
} --------------------编程问答-------------------- 在VS 中调试都能修改到。 那么用反射或者别的办法也一定能改。 就是试过很多种方法了。 都不行 --------------------编程问答-------------------- 既然要让别人可以修改,为啥要设成私有呢 --------------------编程问答-------------------- 既然要让别人可以修改,为啥要设成私有呢 --------------------编程问答-------------------- 以为已经发布后的代码,改不了。只有这样了· --------------------编程问答--------------------
如果有那个DLL。反射应该可以。 --------------------编程问答-------------------- 私有变量不可修改,换public吧 --------------------编程问答-------------------- 私有变量不可修改,换public吧 --------------------编程问答-------------------- 私有变量不可修改,换public吧 --------------------编程问答-------------------- 路过!不解释,已经解决了差不多。 --------------------编程问答-------------------- 路过!不解释,已经解决了差不多。 --------------------编程问答-------------------- 我用反射 试了改不了,不知道是不用没用对。
就是在发布后的程序,有DLL ,就是改不了
VS 中调试手动都能修改到
求有经验的帮个忙吧
补充:.NET技术 , C#