鼎鼎知识库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.实例.md 1.5KB

5 vuotta sitten
1234567891011121314151617181920212223242526272829303132333435363738394041
  1. > what,什么是实例
  2. 实际案例。在面向对象的高级语言(C#, Java)中,需要定义类型。比如说类,类是模型、模具。在做蛋糕的时候需要模具,然后根据模具可以做出很多蛋糕。那么,类就是模具,实例就是模具做出来的蛋糕。
  3. ```
  4. public class Person
  5. {
  6. public int Id{get;set;}
  7. public string Name{get;set;}
  8. public decimal Price{get;set;}
  9. }
  10. var person1 = new Person{Id=1, Name="person1", Price=2.0m};
  11. var person2 = new Person{Id=2, Name="person2", Price=3.0m};
  12. ```
  13. 以上person1和person2就是Person的实例。
  14. 再来举例。
  15. ```
  16. var model = new MyViewModel(); //实例化一个MyViewModel叫做model
  17. IQueryable<Person> persons= _context.Person.Where(t=>t.Price > 2.5m);
  18. Person person1 = persons.FirstOrDefault(t =t.Name == "person1");
  19. Console.WrtieLine(person1.Name);
  20. Console.ReadKey();
  21. ```
  22. > why,为什么需要实例
  23. 因为类是一种定义,无法被直接引用。所需需要实例化类在程序中调用。而且一个类有不同的表现形式,就像用摸具做蛋糕一样,有些蛋糕是白色,有些是粉色,所以实例的属性值可以是不一样的。
  24. 总之,通过一次性定义类,然后可以生成这个类的不同实例。
  25. > how, 在内存方面如何实现的
  26. 在C#,是一种托管式的,C#内部会为我们维护一个托管的堆栈,值类型(int, bool, short, long, struct)保存在栈上,引用类型(类, string)保存在堆上。
  27. ![实例在托管堆栈](./imgs/sl.png)