如果对一个值可以包含多个,那么可以使用枚举,加上Flags 本文告诉大家如何写一个 Flags。 在写前,需要知道一些基础知识,取反、或、与,如果不知道的话,请去看看基础。...合并多个,使用 | Show show=Show.A | Show.B 判断是否存在某个值 一个简单方法是用 HasFlag,但是一个方法是用 & Show show=Show.A | Show.B...=0; 去掉一个值 Show show=Show.A | Show.B; show=show & (~Show.A); 取反一个值 Show show=Show.A | Show.B;...=0; if(包含) { show=show & (~Show.A); } else { show=show | Show.A; } 需要知道在以前,写枚举的值...,不是二进制,现在C#7可使用二进制 [Flags] public enum Show { A = 0b00000001, B = 0b00000010
RedisClient存入缓存: (1)redis.exe 执行代码和结果 127.0.0.1:6379> set Token "4b366348-da6a-4716-84f6-e3af656943ff" OK (2)c#...RedisClient读取缓存: (1)redis.exe 执行代码和结果 127.0.0.1:6379> get Token "4b366348-da6a-4716-84f6-e3af656943ff" (2)C#
要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项: enum Level { Low, Medium, High } 您可以使用点语法访问枚举项...在有些情况下,当您知道值不会更改时,例如月份、日期、颜色、扑克牌等时,请使用枚举。...写入文件并读取它 在以下示例中,我们使用 WriteAllText() 方法创建一个名为 "filename.txt" 的文件,并向其中写入一些内容。...这种情况的技术术语是:C# 会引发异常(抛出错误)。 C# try 和 catch try 语句允许您定义一块在执行过程中测试错误的代码块。...The 'try catch' is finished. throw 关键字 throw 语句允许您创建自定义错误。 throw 语句与异常类一起使用。
在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。...在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。 结构体是用来代表一个记录。假设您想跟踪图书馆中书的动态。...枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。...类的静态成员 我们可以使用 static 关键字把类成员定义为静态的。...关键字 static 意味着类中只有一个该成员的实例。静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。
---- 问: 在linux系统里,普通用户目录是在 /home 下,root用户目录在 /root,因此全部用户共享目录的。 那如果我们要装一个东西的话,是不是只用装一遍?...(比如说ohmyzsh之类的) 我之前在自己服务器上,每次都需要安装两遍,一次只有当前那个用户生效,这是为什么呢?...---- 答: 不一定,当我们说我们在 linux 装了一个东西,指的是:「我们装了一个命令,可全局执行」。此时是将该命令放在了全局执行目录(或者将该命令目录放在了 $PATH)。...哦对,PATH 该路径列表可自定义,而每一个用户都可以有独立的 PATH 环境变量。...所以,要看一个命令是所有用户共享还是仅对当前用户有效,具体要看该命令是怎么装的,可以看看 which command 进一步排查。
C# 结构体(Struct) 在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。 结构体是用来代表一个记录。...假设您想跟踪图书馆中书的动态。您可能想跟踪每本书的以下属性: 定义结构体 为了定义一个结构体,您必须使用 struct 语句。struct 语句为程序定义了一个带有多个成员的新的数据类型。...在 C# 中的结构与传统的 C 或 C++ 中的结构不同。C# 中的结构有以下特点: 结构可带有方法、字段、索引、属性、运算符方法和事件。 结构可定义构造函数,但不能定义析构函数。...枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。...enum { enumeration list }; 枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0。
---- 首先我们在C++/CLI项目里面建立一个enum ? 当我们将其在c#项目中引用时,神奇的事情发生了,这个枚举的枚举值不见了。 ? 现在我们试着给枚举值做一点改变,加一个class ?...枚举又正常了。 ? 实际上在C++/CLI中我们可以定义两种枚举类型,不加class关键字的是标准C++枚举,加class关键字的是托管枚举或者叫做CLR枚举。...对于C++/CLI来说,作为一种跨边界语言,能够轻松的在托管和非托管语言中自由切换,但是对于C#项目(.NET)项目来说,必须使用CLS兼容的托管枚举。...所以没有class关键字的枚举,自然就看不见了。...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
值类型和引用类型 C#和Java都区分值类型和引用类型,但C#的处理更加灵活: 值类型(Value Types): 在C#中,所有的基本数据类型(int, float, bool等)和struct都是值类型...C#独特之处: C#允许使用struct关键字创建自定义值类型。 C#的string虽然是引用类型,但具有值类型的一些特性(如不可变性)。...在实际编程中,合理利用这些特性可以提高代码质量和开发效率。例如,使用模式匹配可以使类型检查和转换更加简洁,使用switch表达式可以使复杂的条件判断更加清晰。...1.5 方法和参数 方法(在Java中称为函数)是编程中最基本的代码组织单元。C#和Java在方法定义和使用上有很多相似之处,但C#提供了一些额外的特性,使得方法定义和调用更加灵活。...在实际编程中,合理利用这些特性可以让你的代码更加清晰、简洁和易于维护。例如,使用命名参数可以提高代码的可读性,使用扩展方法可以使你的代码更加模块化,而使用异步方法可以提高应用程序的响应性。
在C#中,基本数据类型和引用类型是两种不同的数据类型,它们在作用和使用上有一些明显的区别。基本数据类型是直接存储数据值的简单类型。...1.4 布尔类型 在C#中,布尔类型(bool)用于表示逻辑值,它只有两个取值:true和false。布尔类型主要用于判断条件和执行逻辑控制。...1.5 枚举类型 在C#中,枚举类型(enum)用于定义一组具名的常量值,它允许我们为这些值分配一个名称,以便于理解和使用。...无论是一维数组还是多维数组,它们在处理大量数据和进行矩阵运算等方面都非常有用。 2.4 类型转换 在C#中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。...引用类型的转换涉及到继承和多态的概念,可以使用类型转换运算符或as和is关键字进行类型转换。 Tip:类型转换在C#中是实现不同数据类型之间的相互转换的一种机制。
例如,假设您必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。 ...可以使用冒号指定另一种整数值类型。 如果不为枚举数列表中的元素指定值,则它们的值将以 1 为增量自动递增。...这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。typeof运算符将在第5章详细论述。...在C#中,枚举的真正强大之处是它们在后台会实例化为派生于基类System.Enum的结构。这表示可以对它们调用方法,执行有用的任务。...所以,在使用枚举的时候,感觉到并不是很方便,有的时候我们还是比较乐意创建常量,然后在类中,声明一个集合来容纳常量和其意义。
枚举类型转换:可以将一个枚举类型转换为其底层的整数类型,如将枚举类型转换为int。这样可以在需要使用整数类型的场景中进行操作。...转换操作符 在C#中,我们可以使用自定义的转换操作符来定义显示类型转换。转换操作符是一种特殊的方法,用于将一个类型转换为另一个类型。...在C#中,装箱和拆箱操作可以通过使用box和unbox关键字来实现。...2.3 动态类型 动态类型的声明和使用 在C#中,可以使用dynamic关键字声明动态类型变量,这允许在编译时不指定变量的具体类型,而是在运行时根据变量的操作进行动态类型推断。...类型推断是C#中的一项强大功能,它允许编译器根据上下文自动推断变量的类型。使用var关键字可以在不显式指定类型的情况下声明变量,使代码更简洁。
在C#中,使用 const 关键字声明符号常量。 调用DataAdapter对象的 Fill() 方法填充数据集。...在C#中,根据打开的多个窗体之间是否存在相互制约关系,可将窗体的显示模式分为_ _模态_窗体和_ 非模态 __窗体。...在C#中,根据打开的多个窗体之间是否存在相互制约关系,可将窗体的显示模式分为 ( 模态 窗体和 非模态 )窗体。...C#语言规定变量在使用前必须先 定义变量 。 菜单一般可分为 主菜单 和上下文菜单(又称快捷菜单)两种。...C#编写程序时,程序的入口是 Main() 函数。 定义枚举的关键字是 enum 。 面向对象的语言具有__继承_ 性、封装性、_多态 性。
在C#应用程序中,一般在程序的开头使用关键字( )来引入命名空间。 A.class B.using C.in D.this 5. 异常处理使用时,一般将可能出现异常的语句放在( )代码块中。...在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数 参考文章:?链接 17. 类是使用关键字( )定义的。...关于C#语言的基本语法,下列哪些说法是正确的?( ) A. C#语言使用using关键字来引用.NET预定义的命名空间 B. C#语言中使用的名称不区分大小写 C....若想从派生类中访问基类的成员,可以使用( )。 A.this关键字 B.me关键字 C.base关键字 D.override关键字 102....关键字 D.在C#的类中不能自定义属性 123.
由于它是由字母组成的,所以也是Java的保留关键字。它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。可以用来判断继承中的子类的实例是否为父类的实现。...相当于c#中的is操作符。java中的instanceof是通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。...注意:static关键字不会改变类中成员的访问权限;static是不允许用来修饰局部变量。...具体请参照 3 enum枚举 声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。...这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。
枚举类型 枚举类型(enumerated type)定义了一组“符号名称/值”配对。...它从System.Enum直接派生,枚举类型是值类型,但枚举方法不能定义任何方法、属性或事件。(P320 2)C#编译器将枚举类型视为基元类型。所以可用许多熟悉的操作符(==,!...每个枚举类型都有一个基础类型,它可以是 byte,sbyte,short,ushort,int(最常用,也是C#默认选择的),uint,long或ulong。...> ("1", false, out c); //创建值为23的color枚举类型实例 Enum.TryParse ("23", false, out c) ; 判断枚举对于数值是否合法:...在结构中嵌入数组需满足以下几个条件: 1、类型必须是结构(值类型);不能再类(引用类型)中嵌入数组。 2、字段或其定义结构必须用unsafe关键字标记。 3、数组字段必须用fixed关键字标记。
它可以排除值类型和接口。例如简单值类型、结构体、枚举、接口。 1.1.2 判断是否泛型 Type.IsGenericType 属性可以判断类或委托是否为泛型类型。...类和委托都可以使用。 属性 说明 IsNested 获取一个指示当前 Type 对象是否表示其定义嵌套在另一个类型的定义之内的类型的值。...Type.IsValueType 可以判断一个 Type 是否为值类型,简单值类型、结构体、枚举,都符合要求。...GetEnumName(Object) 返回当前枚举类型中具有指定值的常数的名称。 GetEnumNames() 返回当前枚举类型中各个成员的名称。...2.1.1 访问修饰符 public、private两个修饰符,判断起来十分简单; C# 关键字 protected 和 internal 在 IL 中没有任何意义,且不会用于反射 API 中。
全局查询过滤器:避免重复的过滤逻辑 问题:您是否厌倦了在每个查询中为“软删除”实体添加相同的筛选条件? 解决方案:使用 EF Core 中的全局查询筛选器在实体的所有查询中自动应用条件。...关键字:EF Core 侦听器、在 EF Core 中记录 SQL 命令、EF Core 调试 5....无论是将枚举转换为字符串,还是管理不同类型的单位,值转换都可以弥合 C# 代码与数据在数据库中的表示方式之间的差距。 假设我们的类中有一个 for 的枚举。...我们可以将此枚举存储为可读字符串,而不是将此枚举作为整数存储在数据库中。...关键字:EF Core 值转换、在 EF Core 中将枚举转换为字符串、实体框架数据格式 Entity Framework Core 不仅仅是一个数据库工具,它还是一个强大的 ORM,其功能使开发数据驱动的应用程序更轻松
1, //默认第一个值是0 下面依次累加 自定义枚举项名字2, 自定义枚举项名字3, } 如果自己给其中一个枚举项赋了值,那么后面的项都会在此基础上递增,除非人为的再次改变 b.声明 一般在...namespace语句块当中声明 可以在class语句块中 可以在struct语句块中 不能在函数中声明!!!...必须初始化 ChangeValueOut(out a);//不会报错 五、变长参数和参数默认值 1.变长参数关键字 params int[] 意味着可以传入n个int参数 n可以等于0 传入的参数会存在...2.参数默认值 有参数默认值的参数一般称为可选参数 当调用函数时可以不传入参数,不传就会使用默认值 如果要混用 那么可选参数必须写在普通参数后面 static void Speak(string str...//可以使用前面声明的变量 } } 1.访问修饰符 修饰结构体中的变量和方法 能否被外部使用 public是公共的 private是私有的(默认都是私有的) 2.结构体构造函数 没有返回值
在C#中特性分为三种,位映射特性、自定义特性和伪自定义特性。...我们通常说的特性一般指的是自定义特性,这部分特性也是我们能够扩展的,也是我们实际开发中用的特性。 1.1 定义一个特性 如何正确的定义一个特性呢?在C#中,特性也是类的一种。...所有自定义特性都是这个类的子类或者后代类,无一例外。同时,C#提倡在定义一个特性类的时候,类名应当以Attribute结尾,在使用的时候可以自动忽略。...具体原理是因为 AttributeTargets 是支持位运算的枚举,通过一定的位运算可以在一个值中间存放多个枚举。...在使用的时候可以用(属性名=“属性值”)的方式为属性赋值。
枚举在TS里面是原生支持的,使用枚举我们可以定义一些带名字的常量,它的好处是可以让语意更清晰。...定义一个枚举值,需要使用 enum。 TS 仅支持基于数字的和字符串的枚举。如果是数字枚举,枚举值默认是从0开始,依次自增的。你也可以手动的设置第一个枚举值,比如为1。...另外,TS中的接口描述变量时可以使用?定义某个变量为可选变量。比如对某个对象进行约束时,如果对象的某个属性设置成了可选,则传入的对象可以不包含这个属性。...不同的是,C#或Java里面的接口描述类类型时,只能定义函数,TS里则还可以定义属性。如果某个类继承了这个接口,那么这个类必须包含接口里定义的属性和方法。...在TS里,泛型的类型变量定义为T,需要使用包裹起来,这个时候函数会捕获入参的类型,然后在后面就可以使用这个类型了。如下:。
领取专属 10元无门槛券
手把手带您无忧上云