C#构造函数相关主题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Project5_26
{
class Program
{
static void Main(string[] args)
{
Employee employee = new Employee("Cheng", "John", "10000");
Console.WriteLine(string.Format("The last salary {0}.{1} got is {2}",employee.LastName,employee.FirstName,employee.Salary));
}
}
class Employee
{
public string FirstName;
public string LastName;
public string Salary="not enough";
public Employee(string firstName,string lastName,string salary)
{
FirstName = firstName;
LastName = lastName;
Salary = salary;
}
}
}这个例子告诉我们构造器中的值会覆盖声明时指定的值。应该避免既在声明时赋值,又在构造器中赋值。
对象初始化器:
class Program
{
static void Main()
{
Employee employee1=new Employee(“Inigo”,”Montoya”){Titile=””,Salary=””};
}
}
规范:
要为所有属性提供有意义的默认值,确保默认值不会造成安全漏洞或者造成代码效率大幅下降。对于自动实现的属性,要通过构造器设置默认值。
要允许以任意顺序设置属性,即使这会造成对象临时处于无效状态。
规范:
如果使用构造器参数来设置属性,构造器参数(camel大小写风格)要使用和属性(Pascal大小写风格)相同的名称,区别仅仅是大小写风格。
构造器链:
public Employee(string firstName,string lastName)
{
}
public Employee(int id,string firstName,string lastName):this(firstName,lastName)
{
}
上一个例子中,获取3个参数的构造器调用获取两个参数的构造器,但是通常采用的是相反的调用模式-参数最少的构造器调用具有参数最多的构造器,为未知的参数传递默认值。
C#构造函数相关主题的更多相关文章
- 机器学习入门-贝叶斯构造LDA主题模型,构造word2vec 1.gensim.corpora.Dictionary(构造映射字典) 2.dictionary.doc2vec(做映射) 3.gensim.model.ldamodel.LdaModel(构建主题模型)4lda.print_topics(打印主题).
1.dictionary = gensim.corpora.Dictionary(clean_content) 对输入的列表做一个数字映射字典, 2. corpus = [dictionary,do ...
- 2. C++11 构造函数相关
1. 继承构造函数 派生类如果要使用基类的成员函数,可以通过using声明来完成. #include <iostream> using namespace std; class Base ...
- 曹工说Spring Boot源码(17)-- Spring从xml文件里到底得到了什么(aop:config完整解析【中】)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)
再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...
- 一篇笔记带你快速掌握面向对象的Javascript(纯手打)
/** * 创建对象 */ //1.工厂模式 //特点: //创建的对象无法识别其对象类型,不支持instanceof等判断方法,无法标识不同的对象 function createObj(name,s ...
- [java] 深入理解内部类: inner-classes
[java] 深入理解内部类: inner-classes // */ // ]]> [java] 深入理解内部类: inner-classes Table of Contents 1 简介 ...
- Android Bootloader LittleKernel的两篇文章 【转】
转自:http://blog.csdn.net/loongembedded/article/details/41747523 2014-12-05 14:37 3599人阅读 评论(2) 收藏 举报 ...
- web前端学习(二) javascript对象和原型继承
目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...
- C++多线程环境下的构造函数
多线程的环境里,我们总不可避免要使用锁.于是一个常见的场景就是: class ObjectWithLock { private: std::mutex mtx_; SomeResType shared ...
随机推荐
- 转载 GUID介绍
转载 http://www.cnblogs.com/illele/archive/2008/02/25/1080554.html GUID(Global unique identifier)全局唯一标 ...
- Servlet+Tomcat 界面登录
1.文件夹建立(必须按照这个规范,文件名和文件夹名必须一致) a.在%TOMCAT_HOME%\webapps下建立一个文件夹,取名MyWebsit b.在MyWebsit文件夹下新建WEB_INF文 ...
- 在virtual pc中搭建基于ubuntu 的git环境
1. 在virtual pc 上安装 ubuntu http://www.hanselman.com/blog/InstallingUbuntu104LTSOnWindowsVirtualPCOnWi ...
- ECSHOP文件目录详解
ECShop 最新程序 的结构图及各文件相应功能介绍ECShop文件结构目录┣ activity.php 活动列表┣ affiche.php 广告处理文件┣ affiliate.php 生成商品列表┣ ...
- JavaScript要点(八) 闭包
JavaScript 变量可以是局部变量或全局变量. 私有变量可以用到闭包. 全局变量 函数可以访问由函数内部定义的变量,如: function myFunction() { var a = 4; r ...
- MySQL索引使用方法和性能优化
在自己的一个项目中,数据比较多,搜索也很频繁,这里找到一个建立索引很不错的文章,推荐下. 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的 ...
- 【不积跬步,无以致千里】五个常用的Linux监控脚本代码
为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...
- 汽车行业DMS系统介绍
http://blog.sina.com.cn/s/blog_55ceb8f30100hdr8.html 1.汽车行业DMS系统功能介绍DMS是Dealer Management System的简称, ...
- css3 字体旋转
<style> #mycon { font-weight: bold; font-size: 150px; transform: rotateX(10deg); -webkit-trans ...
- Tomcat 集群
1. 前言 该篇中测试的机器发生了变更,在第一篇中设置的Apache DocumentRoot "d:/deployment"修改为了DocumentRoot d:/clust ...