C#学习笔记——值类型

using System;

namespace ValueType

{

class Program

{

/// <summary>

/// 类似Java中的“/**”注释

/// </summary>

/// <param name=" args"></param>

static void Main(string[] args)

{

//C#有三种数据类型:值类型、引用类型和指针类型

//值类型 直接存储在栈上面

int i = 0;//int只是别名,正式写法为System.Int32, 按F12可以查看定义区

//等价于System.Int32 i = 0;

//等价于 int i; 因为int默认值为0

bool aBooleanType = true ;//变量命名方法同Java

//struct类型,及调用方式

Person person = new Person();

person.age = 10;

Console.WriteLine(person.age);

Console.WriteLine(Days .Monday);

var day = Days .Sunday;//定义任何类型的变量都可以用var来代替,这样就可以在定义时不去管它是什么类型,在用到的时候该变量会自动变成对应的类型

Console.WriteLine(day);

Console.WriteLine((int )day);

//枚举类默认是从0开始的,也可以通过设置Monday = 1来设置从1开始

Console.WriteLine(Days1 .Sunday);

Console.WriteLine((byte )Days1.Sunday);

Console.ReadLine();

/*其他值类型还有

enum 枚举类型

这些值类型都继承于System.ValueType,System.ValueType又继承于System.Object类

System.Object所有的类都会继承于System.Object*/

}

/*struct类示例

用来打包封装一个小的数据集,在里面可以像class一样实现方法、事件。*/

struct Person

{

//顺便介绍四大访问修饰符

public int age;//public访问修饰符 对外可见到

public string name;//private访问修饰符

public string firstName;//internal访问修饰符 命名空间内可见

public string lastName;//protected访问修饰符 只有其继承类可见

}

/*enum枚举类型示例

用来限定变量的一个取值范围

例如这里限定了天这个变量只可能有周一到周日这七个值*/

enum Days { Monday, Tuesday, Wenesday, Thursday, Friday, Saturday, Sunday} //默认是整数类型的,也可以在定义时加入":"改变它的类型,例如改成byte类型:

enum Days1 : byte { Monday = 1, Tuesday, Wenesday, Thursday, Friday, Saturday, Sunday } //默认是从0开始的,也可以通过设置Monday=1来设置从1开始

}

}

执行结果

时间: 2024-11-03 22:05:54

C#学习笔记——值类型的相关文章

C# in Depth Third Edition 学习笔记-- 值类型和引用

I. C#中值类型和引用类型 1. 类class 引用类型,结构struct值类型 2. 数组是引用类型,即使元素是值类型,int[]是引用类型 3. 枚举是值类型enum 4. 委托类型delegate是引用类型 5. 接口类型interface是引用类型,但可以由值类型实现. II. 值的表达式:表达式“2+3”的值就是5:而对于引用类型的表达式,它的值是一个引用,而不是该引用所指代的对象,如String.Empty的值不是一个空字符串,而是对空字符串的一个引用. III. 变量的值在它声明

iOS: 学习笔记, 值与引用类型(译自: https://developer.apple.com/swift/blog/ Aug 15, 2014 Value and Reference Type

值和引用类型 Value and Reference Types 在Swift中,有两种数据类型. 一是"值类型"(value type), 它是每一个实例都保存有各自的数据,通常定义为struct, enum或tuple. 二是"引用类型"(reference types),它是多实例共享一份数据,这种类型通常定义为class. 在本文中,我们将展示值类型和引用类型各自的优点以及如何在二者之间选择. 它们有什么区别? 最基本的区别是 "值类型"

iOS: 学习笔记, 值与引用类型(译自: https://developer.apple.com/swift/blog/ Aug 15, 2014 Value and Reference Types)

值和引用类型 Value and Reference Types 在Swift中,有两种数据类型. 一是"值类型"(value type), 它是每一个实例都保存有各自的数据,通常定义为struct, enum或tuple. 二是"引用类型"(reference types),它是多实例共享一份数据,这种类型通常定义为class. 在本文中,我们将展示值类型和引用类型各自的优点以及如何在二者之间选择. 它们有什么区别? 最基本的区别是 "值类型"

c++学习笔记--复合类型,const。

复习c++,有必要对一些东西做一下笔记,方便以后学习,如有问题,欢迎提出. 首先,最常用两种复合类型应该是引用和指针. 所谓复合类型,是在基本类型基础(如:int)上定义的类型. 引用是c++的一个复合类型,首先,它和指针不同的是它并不是一个对象,仅仅只是另一个对象的别名.而且,引用绑定的东西必须是一个对象,引用不是,所以定义引用的引用是 不合法的.也不能定义字面量的引用.同时,普通引用的绑定对象与引用定义类型必须相同. 如: int &a=10;//错误的,必能定义字面量 double b =

【C++11学习笔记】类型判断的type_traits学习

一.简单的type_traits 我理解的type_traits是利用C++模板特性和static.enum特性定义编译器常量,例如 //std::integral_constant源码 typelate<class T, T v> struct integral_constant { static const T value = v; typedef T value_type; typedef integral_constant<T, v> type; operator valu

Redis学习笔记---字符串类型

补充 上篇笔记博客中有些有些关键点未提到,现在这里补充下 redis help 命令 help命令应该是我们使用任何一款软件产品经常用到的命令,有时候通过help命令能够更快的获取相关帮助,而不仅仅通过百度.同样,在Redis中的help命名写的就非常简洁易懂,虽然是只有英文版的帮助信息,但是只要有一定应用基础的人都可以看懂,如: 127.0.0.1:6379> help redis-cli 3.0.2 Type: "help @<group>" to get a l

Java学习笔记---基本类型、运算优先级的一些知识整理

一.Java提供了8种原始数据类型,其对比见下表: 数据类型 字节长度 范围 默认值 包装类 int 4 [-2147483648,2147483647] (-2^31~2^31-1) 0 Integer short 2 [-32768,32767] 0 Short long 8 [-9223372036854775808,9223372036854775807] (-2^63~2^63-1) 0L或0l Long byte 1 [-128,127] 0 Byte float 4 32位IEEE

[Swift]学习笔记-可选类型/可选链

可选类型/可选链                        Make-by-LJW ---转载请注明出处... 它的可选性体现于请求或调用的目标当前可能为空(nil) 如果可选的目标有值,那么调用就会成功: 如果选择的目标为空(nil),则这种调用将返回空(nil) 多次调用被链接在一起形成一个链,如果任何一个节点为空(nil)将导致整个链失效. 因为可选链的结果可能为nil,可能有值.因此它的返回值是一个可选类型. 可以通过判断返回是否有值来判断是否调用成功 有值,说明调用成功 为nil,

c++学习笔记2--constexpr,类型别名,auto

---恢复内容开始--- constexpr:修饰常量表达式,约定修饰对象不仅为常量,而且在编译阶段就能得到值. 与const不同的是,constexpr约束的是当事人,就是说,constexpr int *a=1;这样的语句,a指针本身是const,并且右边也足够简单,而const int*a:这样的语句,则约定了a指向对象是const,这是不同点.constexpr直接限定为顶层const. 类型别名:传统的是typedef, typedef double a; a b = 1.1; 类似这