01:在C#中,string str = null 与 string str = “”的区别
String str=null 这句话的意思就是定义一个字符串,变量str,字符串的内容为空值。
String str=“” 定义一个String类型的变量str,并为其赋值。
(1)""分配了内存;null没有分配内存。
(2)""是一个字符串(String).它在内存中是存在的.而null它是一个空对象.在内存中是不存在的。
(3)""占内存,在内存中会分配一个空间。 null不占内存. 为空引用.
String str1= null; str引用为空String str2= “”; str应用一个空字符串也就是null没有分配空间,"“分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。注意null不是对象,”"是对象。总结: null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; “”表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = “” ;
内存分配 String str= null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间; String str= “”; 表示声明一个字符串类型的引用,其值为”“空字符串,这个str引用指向的是空字符串的内存空间;
02:简述类和结构的相同点和不同点。
结构:
(1).结构可以不通过new操作符来实例化;
(2).结构在使用之前必须进行数据初始化;
(3).结构不可以定义无参构造函数;
(4).结构定义有参的构造函数,必须在构造函数对字段进行初始化;
(5).结构不可以继承,也不可以被继承,但可以实现接口;
(6).结构是值类型;
using System;
using System.Text;
struct Books
{
private string title;
private string author;
private string subject;
private int book_id;
public void getValues(string t, string a, string s, int id)
{
title = t;
author = a;
subject = s;
book_id =id;
}
public void display()
{
Console.WriteLine("Title : {0}", title);
Console.WriteLine("Author : {0}", author);
Console.WriteLine("Subject : {0}", subject);
Console.WriteLine("Book_id :{0}", book_id);
}
};
public class testStructure
{
public static void Main(string[] args)
{
Books Book1; /* 声明 Book1,类型为 Book */
Books Book2; /* 声明 Book2,类型为 Book */
/* book 1 详述 */
Book1.title = "C Programming";
Book1.author = "Nuha Ali";
Book1.subject = "C Programming Tutorial";
Book1.book_id = 6495407;
/* book 2 详述 */
Book2.title = "Telecom Billing";
Book2.author = "Zara Ali";
Book2.subject = "Telecom Billing Tutorial";
Book2.book_id = 6495700;
/* 打印 Book1 信息 */
Console.WriteLine( "Book 1 title : {0}", Book1.