2010-07-07 4 views
0
object nullobject = null; 
object myobject = new myobject(); 
console.writeline("nullobject="+nullobject+"myobject="+myobject); 
+2

Возможно, это приведет к ошибке компилятора, поскольку C# чувствителен к регистру. Если у вас нет собственных специальных объектов 'object' и' console'. – FrustratedWithFormsDesigner

+1

Вы попробовали? –

+4

Почему бы не просто запустить его и посмотреть? – Michael

ответ

3

It (неожиданно для меня, во всяком случае) печатает

nullobject=myobject=System.Object 

(изменив = new myobject(); строку = new object(); и исправление других опечаток.) ​​

То, что я не знаю (и по этой причине я 'm bothering, чтобы опубликовать это) является CSharp рассматривает объекты нулевой строки как пустые строки при конкатенации. На этой странице есть записка наполовину. http://msdn.microsoft.com/en-us/library/ms228504.aspx

object nullobject = null; 
object myobject = new object(); 
Console.WriteLine(nullobject + "");   //ok, prints empty line 
Console.WriteLine(nullobject.ToString()); //this will blow up 
Console.WriteLine("nullobject=" + nullobject + "myobject=" + myobject); //ok, prints what's above. 
+0

Благодарим вас за ответ и исправление опечаток (извините за это) , но я действительно хотел спросить здесь, что то, что объект класса Object в C# печатает, когда ему присваивается нуль, и Во второй строке Объект myobject = new myobject(); что будет напечатано сейчас, если я попытаюсь распечатать myobject. –

+0

Когда вы вызываете 'Console.WriteLine (obj)' или 'string.Format (" {0} ", obj)', 'метод' ToString() 'obj' будет вызван. (Интересным моментом, о котором я не знал, является то, что csharp будет использовать пустую строку вместо нулевого объекта для большинства строковых операций, за исключением прямых вызовов 'ToString()'). 'ToString()' является переопределяемым методом в типе 'object'. Поскольку все в csharp наследует от 'object', любой из ваших классов может переопределить это и вернуть любой текст, который вы хотите. По умолчанию вы получите имя своего типа IE, 'System.Object', выше. –

Смежные вопросы