Извините, я толстый и ленивый, но в основном ленивый. На самом деле, даже не это. Я пытаюсь сэкономить время, чтобы я мог делать больше за меньшее время, так как многое еще предстоит сделать.
Копирует ли это ссылку или фактические данные объекта?
public class Foo
{
private NameValueCollection _nvc = null;
public Foo( NameValueCollection nvc)
{
_nvc = nvc;
}
}
public class Bar
{
public static void Main()
{
NameValueCollection toPass = new NameValueCollection();
new Foo( toPass ); // I believe this only copies the reference
// so if I ever wanted to compare toPass and
// Foo._nvc (assuming I got hold of the private
// field using reflection), I would only have to
// compare the references and wouldn't have to compare
// each string (deep copy compare), right?
}
Я думаю, что знаю ответ наверняка: он только копирует ссылку. Но я даже не уверен, почему я спрашиваю об этом.
Полагаю, меня беспокоит только то, что после создания экземпляра Foo
путем вызова его параметризованного ctor с toPass
, если мне нужно убедиться, что NVC я передал как toPass
, а личное поле NVC _nvc
имел точно такой же контент, мне просто нужно было бы сравнить их ссылки, верно?