C#构造方法(构造函数)
构造方法特点:
一 ,与类同名
public class Product { public int ID { get; set; } public String NAME { get; set; } public Decimal Price { get; set; } public ProductType type { get; set; } public DateTime Birthday { get; set; } public Product() //无参 { ID = 1100; NAME = "手机"; Price = 8888; type = ProductType.手机; Birthday = new DateTime(2019, 11, 1); } }
二,没有带返回值
三 ,无参构造函数
public Product() //无参 { ID = 1100; NAME = "手机"; Price = 8888; type = ProductType.手机; Birthday = new DateTime(2019, 11, 1); }
四,有参构造函数,this当前对象
public Product(int id,string Name,int price, ProductType type) { this.ID = id; this.NAME = Name; this.Price = price; //this当前对象 }
不要声名重复的构造函数,私有的构造方法不能创建对象
调构造函数
Product s1 = new Product();//无参 Product s2 = new Product("2000","huawie", 5000,ProductType.服装, new DateTime(2019,2,3)); //有参 Console.WriteLine(s2.ID+s2.NAME+s2.Price+ProductType.服装); Console.ReadLine(); Console.WriteLine(s1.ID);
什么叫构造函数(构造器&&构造方法)
官方说法 :
在一个类中创建新的对象中的特殊小程序,它创建新的对象,并且实参会接受参数用以设定实例的数量。
构造器和实例方式类似,但是与其他的方法不同,构造器没有返回类型,不会被继承,且不会有范围修饰符,构造器的函数名称一般与它所属的
但是如果提供了带参数的构造函数,编译器就不会去找默认的构造函数了,没有定义时他才会去找,
如果试图使用无参数的构造函数去构造实例对象,编译器就回检查出错
当然构造函数也可以用来传值,当然可以用private && protected 类型让不相关的类访问它们
public Mynubmer(int number) { number = _number; } var temp = new Mynuber();
//请提供对应的实参
以上没有定义任何的公有的或受保护类型的构造函数,这就使当前Class 无法实例化,
这样可以用一个公有的静态属性或者方法,以用来实例化该类
以下两种方法 是有效的
类做某种静态成员&&属性容器时,因此用于不会去实例它,在这种情况下,可以用static去修饰符声明类,当前修饰符,只能包含静态成员,不得实例化
希望类仅仅通过调用函数来实例化,这就是所谓的实例化类的工厂方法,。单例模式的code如下
public class Singleton { private static Singleton s_ingleton; private int _sate; private Singleton(int sate) { _sate = sate; } public static Singleton instance { get { return s_ingleton ?? (s_ingleton = new Singleton(45)); } } }
这里的THIS关键字仅仅调用最匹配的那个构造函数,注意构造函数初始化器在构造函数的函数体之前执行,
public class Car { private string _description; private uint _nWhereis; public Car(string description,uint nWhereis) { description = _description; nWhereis = _nWhereis; } public Car(string description) : this(description,4) { } } var mycat=new car("dsdsada");
构造初始化器可以包含对同一个类另外一个构造函数调用。也可以直接包含对直接弗雷的构造函数调用,但是应该是base了初始化器不能由多个调用。
构造函数是多数情况下是允许重载的,一个类允许接收参数不同种类的构造器存在。如JAVA &&C#使用单个类来具体的创建和返回新的实例构造器通常被称为抽象为工厂方法,一种同样用来创建新对象,但会同时使用多个类,或者一些诸如
在C#中,静态构造器是用来初始化任何静态资料。静态构造函数也成为了类构造函数,由于类构造函数在生成的MSIL里名为“.CCOR”,因此也被称为cctor.
静态构造函数允许复杂的静态变量初始化
静态构造函数只会在第一访问被调用被访问,任何使用该类的操作)都会引发静态构造函数的执行。静态构造函数是
public class MyClass { private static int _A; // Normal constructor static MyClass() { _A = 32; } // Standard default constructor public MyClass() { } } // Code somewhere // Instantiating an object with the constructor above // right before the instantiation // The variable static constructor is executed and _A is 32 MyClass c = new MyClass();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现