002:C#类

1)在C#中,string str = null 与 string str = “” 请尽量使用文字或图
象说明其中的区别。
答:string str=null是不给他分配内存空间,而string str=“”给它分配长度为空字符串的内存空间.

(2)简述类和结构的相同点和不同点。并用代码举例。
类:

 class Person
    {
        private string name;
        private int age;
        public void SayHi()
        {
            Console.WriteLine("Hello,My Name is"+this.name+"My Age is"+this.age);
        }
    }

结构:

struct Person
    {
        private int weith;
        private int height;
        public int GetArea()
        {
            return this.weith * height;
        }
    }

相同点:都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数的方法
结构:

public   struct Person
    {
        public int id;
        public int age;
        public void Show()
        {
            Console.WriteLine("ID:{0}\n年龄:{1}",id,age);
        }
    }
        static void Main(string[] args)
        {
            Person person;
            person.id = 101;
            person.age = 21;
            person.Show();
            Console.ReadLine();
        }

结构:

 public  class Person
    {
        public int Id { get; set; }
        public int Age { get; set; }
        public Person(int id,int age)
        {
            Id = id;
            Age = age;
        }
        public void Show()
        {
            Console.WriteLine("ID:{0}\n年龄:{1}",this.Id,this.Age);
        }
    }
   static void Main(string[] args)
        {
            Person person = new Person(101, 21);
            person.Show();
            Console.ReadLine();
        }

(3)什么是拆箱和装箱?举例说明
答:装箱:值类型转换为引用类型

 static void Main(string[] args)
        {
            int i = 123;
            object o = i;
            i = 456;
            Console.WriteLine("值类型为:{0}",i);
            Console.WriteLine("引用类型为:{0}", o);
            Console.ReadLine();
        }

拆箱:引用类型转换为值类型

static void Main(string[] args)
        {
            int i = 123;
            object o = i;
            int j = (int)o;
            Console.WriteLine("值类型为:{0}",i);
            Console.WriteLine("引用类型为:{0}", o);
            Console.ReadLine();
        }

(4)编程实现一个冒泡排序

 static void Main(string[] args)
        {
            int[] array = new int[3];
            int teep=0;
            for (int i = 0; i <array.Length-1; i++)
   {
                Console.WriteLine("");
    for (int j= 0; j < array.Length; j++)
   {
                Console.WriteLine("*");
    if (array[j]<array[i])
 {
           teep=array[i];
                 array[i]=array[j];
                 array[j]=teep;
 }
   }
   }
            Console.ReadLine();
        }

(5)编程实现一个递归方法

 public double PM(int n)
      {
          if (n==0||n==1)
          {
              return 1;
          }
          else
          {
              return n * CC(n - 1);
          }
      }


(6).说说目前学的集合有哪些?,每一种集合的特点以及使用场景
答:ArrayList:可以动态维护,可以根据需要自动扩充
Hashtable:不能通过索引访问,只能通过Key访问Value
List:访问元素无须进行类型转换
Dictionary<k,v>:具有泛型的全部特性,编译时检查类型约束,获取元素时无须类型转换

(7).变量被标记为 “const” 和readonly” 有何不同?
答:const:修饰的常量在声明的时候必须初始化
readonly:修饰的常量则可以延迟到构造函数初始化

(8).“out” 和 “ref” 参数有何不同?用代码举例
答:ref和out关键字在运行时处理方式不同

   class Em
    {
        public void SS(out int i) { };
          public void SS(ref int i) { };
    }

(9)“StringBuilder” 和 “String” 有何不同?
答:string是final类,stringBuilder不是,string对象是恒不变的,stringBuilder对象是表示字符串是可变的

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的RFID图书借阅系统的C#代码示例: ```csharp using System; using System.Collections.Generic; namespace RFIDLibrarySystem { class Program { static void Main(string[] args) { // 初始化图书列表和用户列表 List<Book> books = new List<Book>(); List<User> users = new List<User>(); // 添加图书和用户 books.Add(new Book("001", "C# Programming", "John Smith")); books.Add(new Book("002", "Java Programming", "Jane Doe")); users.Add(new User("001", "Alice")); users.Add(new User("002", "Bob")); // 初始化RFID卡 RFIDCard userCard = new RFIDCard("001"); RFIDCard bookCard = new RFIDCard("002"); // 用户借书 User user = users[0]; Book book = books[0]; user.BorrowBook(book, userCard, bookCard); // 用户还书 user.ReturnBook(book, userCard, bookCard); } } // 图书 class Book { public string Id { get; set; } public string Name { get; set; } public string Author { get; set; } public Book(string id, string name, string author) { Id = id; Name = name; Author = author; } } // 用户 class User { public string Id { get; set; } public string Name { get; set; } public List<Book> BorrowedBooks { get; set; } public User(string id, string name) { Id = id; Name = name; BorrowedBooks = new List<Book>(); } // 借书 public void BorrowBook(Book book, RFIDCard userCard, RFIDCard bookCard) { if (book != null && userCard != null && bookCard != null) { // 检查图书是否已被借出 if (bookCard.IsAvailable()) { // 借书 BorrowedBooks.Add(book); bookCard.SetUser(userCard); Console.WriteLine(Name + " borrowed " + book.Name); } else { Console.WriteLine("The book is not available."); } } } // 还书 public void ReturnBook(Book book, RFIDCard userCard, RFIDCard bookCard) { if (book != null && userCard != null && bookCard != null) { // 检查用户是否借了这本书 if (BorrowedBooks.Contains(book)) { // 还书 BorrowedBooks.Remove(book); bookCard.ClearUser(); Console.WriteLine(Name + " returned " + book.Name); } else { Console.WriteLine("You did not borrow this book."); } } } } // RFID卡 class RFIDCard { public string Id { get; set; } public User User { get; set; } public RFIDCard(string id) { Id = id; } // 设置用户 public void SetUser(RFIDCard userCard) { if (userCard != null) { User = userCard.User; } } // 清除用户 public void ClearUser() { User = null; } // 检查卡是否可用 public bool IsAvailable() { return User == null; } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值