class test
{
public static void Main(string[] args)
{
string s = "' ";
MainClass y = new MainClass();
BaseClass x = y;
x.i = 100;
Console.WriteLine("{0} ,{1}", x.i, y.i);
Console.ReadKey();
} }
class MainClass : BaseClass
{
public int i;
} class BaseClass
{
public int i;
}输出结果为什么是100,0 在java里面输出结果也是一样的.求大神解释通俗点,小弟才疏学浅.
解决方案 »
- SqlBulkCopy抛出的“意外的现有事务”异常
- 如何获得装箱到object类型中的实际类型
- 求教一个采集系统表达式问题
- vb webbrowser 如何等网页加载完了之后再进行下面操作。。。
- C# 怎么样让文字反白(高亮)显示
- 麻烦大家帮我看看这段生成word报告的代码,不胜感激!不胜感激!不胜感激!
- WinFrom的问题,熟悉的人一看便知
- FileOpenDialog 框中增加 一个 密码输入框 怎么加 ?
- 小白求教问题
- Convert.ToInt32("3")返回的怎么是0?
- 菜鸟纳闷:byte与ushort 问题,见笑了 呵呵
- dev控件GridControl,设置了EnableMarkedSelection
和
BaseClass 的 i
一点关系都没有。
2. 不要将字段public
3. 尽管代码不规范,但程序隐含使用的new关键字,也就是hide,并没有override,所以各是各。
BaseClass y = new BaseClass();
BaseClass x = new BaseClass();
x=y;
x.i = 100;
Console.WriteLine("{0} ,{1}", x.i, y.i);楼主问的应该是这种情况下值是跟着变得吧
MainClass y = new MainClass();
BaseClass x = y;
x.i = 100;
Console.WriteLine(string.Format("{0}---{1}---{2}", x.i,y.i, ((BaseClass)y).i););
Console.ReadKey();看看这样的输出结果你就该明白了