C#构造函数用法
1.实例构造函数
2.静态构造函数
3.私有构造函数

例:
创建一个类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _20180718Demo
{
public class TestConstructor
{
public int a;
public int b; public static int c; //静态构造函数(不可带修饰符)
static TestConstructor()
{
Console.WriteLine("静态构造函数被调用!");
} //无参构造函数
public TestConstructor()
{ } public TestConstructor(int ia, int ib, int ic)
{
this.a = ia;
this.b = ib;
} public TestConstructor(int ia, int ib)
{
this.a = ia;
this.b = ib;
} public int Add()
{
return a + b;
}
}
}
1.在主函数种为静态变量c赋值并输出。
System.Console.WriteLine(TestConstructor.c=99);
运行一下:如图所示:

结论:访问该静态变量之前被调用
2.在主函数种实例化TestConstructor类,并且调用Add()方法。
TestConstructor Tc = new TestConstructor(6, 2);
System.Console.WriteLine(Tc.Add());
运行一下,如图所示:

结论:①第一次实例化该类时,静态函数被调用
②构造函数可以进行重载,类实例化时可以为成员变量赋值
3.私有构造函数。使用场景(工具类、单例模式)
创建一个单例类:
class SingleT
{
public static SingleT s = null;
private SingleT()
{ } public static SingleT GetInstance()
{
if(s==null)
{
return s = new SingleT();
} return s;
}
}

结论:私有构造函数,可用于直接阻止创建类的实例
参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/private-constructors
C#构造函数用法的更多相关文章
- C#中派生类调用基类构造函数用法分析
这里的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数例如: ? 1 2 3 4 5 6 7 8 9 10 11 ...
- android关于fragment的构造函数用法建议
错误信息 Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArgumen ...
- JS中面向对象的,对象理解、构造函数、原型、原型链
6.1 理解对象 6.1.1 对象属性类型 ECMS属性有两种类型:数据属性和访问器属性 1 数据属性 [[configurable]] 表示能否通过Delete 删除属性从而从新定义属性,能否修改属 ...
- LinqToDB 源码分析——前言
记得笔者进入公司的时候接触的第一个ORM框架是Entity Framework.为了Entity Framework也看了不些的英文资料(不是笔者装B哦).正式使用三个月后.笔者对他有一个全面性的认识 ...
- FormData、Blob、File、ArrayBuffer数据类型
XMLHttpRequest 1.0 1.0 中xmlhttpRequest有2个重要的返回属性,reposeText,reposeXml.下面的数据类型都是2.0新增的 FormData对象 我们应 ...
- operator new与new operator的区别
原文地址:http://www.cnblogs.com/jamesmile/archive/2010/04/17/1714311.html,在此感谢 C++中的operator new与new ope ...
- HTML5中的Blob对象的使用
HTML5中的Blob对象和MYSQL中的BLOB类型在概念上是有点区别的.MYSQL中的BLOB类型就只是个二进制数据容器.而HTML5中的Blob对象除了存放二进制数据外还可以设置这个数据的MIN ...
- .net常見面試題(四)
1. .Net.C#.VisualStudio之间的关系是什么? .Net一般指的是.Net Framework,提供了基础的.Net类,这些类可以被任何一种.Net编程语言调用,.Net Frame ...
- HTML5中的二进制大对象Blob(转)
HTML5中的Blob对象和MYSQL中的BLOB类型在概念上是有点区别的.MYSQL中的BLOB类型就只是个二进制数据容器.而HTML5中的Blob对象除了存放二进制数据外还可以设置这个数据的MIN ...
随机推荐
- 多线程使用信号量sem_init,sem_wait,sem_post
信号量的主要函数有: int sem_init(sem_t *sem,int pshared,unsigned int value); int sem_wait(sem_t *sem); int se ...
- Android BindService中遇到的一个小问题
今天在使用BindService的时候遇到个小问题,我希望通过Bindservice获取到这个服务,然后执行服务内的某个自定义方法,如下: if(bindService==null){ Intent ...
- sata2.0和sata3.0的区别
sata是指电脑主板上的硬盘接口,3.0是2.0的升级版本,发布于2009年,所以2010年之前的电脑主板基本都只提供sata2.0接口,如果你不知道自己的电脑是sata2.0还是sata3.0,想想 ...
- MySQL OSC(在线更改表结构)原理
1 OSC介绍 在我们的数据库操作中,更改表结构是一个常见的操作,而当我们的表数据量非常大时,我们更改表结构的时间是非 常的长,并且在跟改期间,会生成一个互斥锁,阻塞对整个表的所有操作,这样,对于我们 ...
- spring集成Redis(单机、集群)
一.单机redis配置 1. 配置redis连接池 <bean id="jedisPoolConfig" class="redis.clients.jedis.Je ...
- java switch(表达式)中表达式的类型
java 1.6(包括)以前,只是支持等价成int 基本类型的数据:byte ,short,char,int(其他的都不可以). 1.7加入的新特性可以支持String类型的数据.
- 【bzoj1019】[SHOI2008]汉诺塔
1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1427 Solved: 872[Submit][Status] ...
- Android中dp、dpi与px的关系
转自知乎用户的回答: 1. dpi是dot per inch,每英寸多少点,ppi是 Pixel per inch,每英寸像素数,针对显示器的设计时,dpi=ppi.ppi计算方法是长宽各自平方之和开 ...
- zend studio在线安装svn的插件
这个,其实真的很简单 ,但是让我纠结了很久. 安装步骤: 1.确保电脑能够上网: 2.打开zend studio,然后选择help->welcome会弹出一个欢迎页面; 3.等待几秒后可以看到右 ...
- Java后端WebSocket的Tomcat实现(转载)
一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通 ...