为什么以下不起作用:
Range(Cells(1,1)).Value = 3
Cells(1,1)应该与使用A1权利基本相同?
(我意识到我可以做到Cells(1,1).Value = 3,但我只是好奇为什么它不起作用.)
我读了MSDN条目,它显示第一个参数必须是A1样式,但是这样的东西确实有效:
Range(Cells(1,1), Cells(2,3)).Value = 2
完全糊涂了.
string name = "bob";
object obj = name;
obj = "joe";
Console.WriteLine(name);
Run Code Online (Sandbox Code Playgroud)
我对名字打印bob有点困惑.如果string和object都是引用类型,那么在"obj = name"赋值之后,它们是否应该指向堆上的同一块内存?谢谢你的任何澄清.
编辑:StackUnderflow的例子提出了另一个相关的问题.
MyClass myClass1 = new MyClass();
MyClass myClass2;
myClass1.value = 4;
myClass2 = myClass1;
myClass2.value = 5; // myClass1 and myClass2 both have 5 for value
Run Code Online (Sandbox Code Playgroud)
当两个都是类引用时会发生什么?为什么它不能以相同的方式工作,因为我可以通过一个引用更改类字段,它反映在另一个引用中.类变量也应该是引用.刺痛是不可改变的吗?
object[] objs = new object[]{"one","two","three"};
Run Code Online (Sandbox Code Playgroud)
字符串是否存储在数组中作为字符串对象的引用
[@] - one
[@] - two
[@] - three
Run Code Online (Sandbox Code Playgroud)
或者是存储在数组元素中的字符串对象?
[one][two][three]
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:对不起,我的花式图失败了.
有人可以解释为什么这不起作用?
MyClass myClass1 = new MyClass();
object obj = myClass1;
MyClass myClass2 = obj; <-- error
Run Code Online (Sandbox Code Playgroud)
如果目标文件"点"到MyClass类型相同的内存块,那么我为什么不能"点" myClass2的内存在最后一行相同的块?
谢谢你的帮助.
class MyClass
{
**private** delegate void MyDelegate(); //error: MyDelegate is less accessible than property Del
private MyDelegate del;
public MyDelegate Del
{
get { return this.del; }
set { this.del = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
改为公开修复,但我想更详细地了解原因.