如果不赋予初值,C#的变量是不允许直接使用的。
但有的时候,让值的类型为空是非常有用的,
比如三态bool,其中一个状态便是未给定值。
泛型使用System.NullAble<T>提供了类型值为空的一种方式。
System.NullAble<T> nullAbleInt;
因为太常用,C#特意给了一个语法快捷
int? nullAbleInt;
简单的例子:
int? nVal1 = new int?();
int? nVal2 = null;
int? nVal3 = 3;
Console.WriteLine(nVal1); // 输出null
Console.WriteLine(nVal2); // 输出null
Console.WriteLine(nVal3); // 输出3
原则:null与任何数数学运算结果为null,null bool 操作任何值结果为 null。
为了减少可空类型的代码量,遇到null的时候
C#提供了??操作符来获取如果为空的默认值。
static void Main(string[] args)
{
int? nVal1 = null;
int? nVal2 = 5;
// nVal1为空,相乘后还是null,输出0作为默认值
Console.WriteLine(2 * nVal1 ?? 0);
// nVal2非空,取计算值输出,输出10
Console.WriteLine(2 * nVal2 ?? 0);
}
转自:http://zhidao.baidu.com/link?url=cD0UZbZ35YoMDpLhbvVSn21iJEeaIxdGIbrsxTObnMJ3KorYtSybToSzKrJQHeoEFKaDxe4HeDLCZyudycbnma
-
在sql数据库的表设计中,其中有一栏是允许空是什么意思?
2015-06-21 17:37:19 -
允许空密码的账户登陆是什么意思_要搞服务器了,为什么有点慌啊,其实真的不怪我...
2020-12-03 20:17:38额,你想说我只知道固态和机械硬盘,这个是什么鬼? 其实这是服务器硬盘的一种规格,常见的有sas,sata,ssd。 恩。说这么多,其实还是不知道从哪里搞起。 幸亏有老司机一语道破。 开始上货 给了一句话,连上服务器...记得第一次开始搞服务器,一脸假装镇定的样子,其实........
本文关键字:raid,Linux系统,服务器,ssh
出自公众号:工程师江湖
一、疑问
如果说到服务器,我觉得大多数人会说,哎,这简单,不就是装一个系统么,要么windows系统,要么Linux系统,这些我都会啊,简单的不想说话。
说是这么说,但是我拿太阳发誓(反正热不到我,空调开大),要是没有做过,心里绝对会发慌,你还别不信,等我来描述下。
“你做下服务器去吧”,我心里想着,不就是个服务器么,安装系统难不倒我,这个so easy。
是的,你没猜错,看到服务器的我一脸惆怅,这怎么搞啊,我该干什么啊???
我默默盯着服务器上面的那几块硬盘,然后绕着服务器转了两圈,别说,接口还好几个呢,猜了下,下面的四个接口一看就是普通网口啦,最上面的就是插光模块的,那么然后呢?
可以接显示器,看到那个蓝色的没有,再靠右的那个是U盘,为Linux系统盘,在靠右,接的就是键盘和鼠标。
你可能要说了,这怎么和台电脑似的?
这你还真对了,某种意义上来说服务器就是一台电脑,完全可以把它当电脑看待。
电脑不都有硬盘么,服务器的在哪,看下图,sas硬盘。
额,你想说我只知道固态和机械硬盘,这个是什么鬼?
其实这是服务器硬盘的一种规格,常见的有sas,sata,ssd。
恩。说这么多,其实还是不知道从哪里搞起。
幸亏有老司机一语道破。
开始上货
给了一句话,连上服务器——安装raid——装系统——安装服务,任务完成,收摊。
首先说下连上服务器,我呸,没啥说的,连接不上怎么下面的操作,首先服务器上面一般带有初始化IP,账户/密码,在电脑端设置同段IP就好。
安装Raid,其实服务器上面一般带有不同规格的硬盘,比如sas硬盘,本次以4块sas盘组合来说。
Raid级别一般用哪些呢?这个啊,我想想。。。。。。。
其实我也不知道,这个需要看需求情况,常见的有,raid0,raid5,raid10......
不好意思,其实这是我猜的,还是一句话,看情况。
本次说raid10,这个好啊,又能备份,又能提升硬盘读取性能。
什么?你问我,raid10哪里看出能够备份,还能提升性能,这个我....(等后期从理论开始写一篇)
很简单,raid1是镜像盘,一半使用,一半备份,raid0,读取数据会并行读取,自然提升读取性能,组合起来不就是既能够备份,又能提升读写性能喽——详细原理内容后期解说。
安装系统,怎么装?拿嘴装啊。
开玩笑的,服务器后面有U口,可以插入U盘,做一个Linux 启动盘,自然就可以像安装windows那样操作了。(U启动盘做起来有点费事,在写我就受不了了)
二、要开搞喽
1、服务器上面有什么?
前面也说过了,从外观看,有多块网卡,可以查光模块,也可以连接以太网线。有显示器接口,键盘/鼠标接口,有可见的一块块的硬盘。
仔细看,还能够看到ILO管理口,包括默认账户名和密码。
2、怎么连接服务器?
我拿惠普服务器举例,其实不管什么厂家的基础核心都是一个样子。
连接服务器常见的两种方式。
(1)通过电脑配置IP,远程登录上去操作;
(2)服务器直接外界显示器,鼠标,键盘操作;
这次就说简单的显示器,鼠标,键盘方式。(电脑连接管理需要安装jre环境)
3、怎么安装Raid?
综合考虑后,使用四块sas硬盘配置Raid10。
(1)按开电源(废话)
(2)进入raid配置
(3)创建raid(raid=阵列)
(4)保存raid
F8保存配置
回车下一步
(5)查看raid
查看Raid
4、怎么安装系统?
(1)ESC退出界面,继续加载启动项
备注:启动盘做好且接入服务器
(2)ESC退出界面,继续加载启动项
省略系统安装过程,
5、开启服务——SSH
(1)rpm安装包结果
OpenSUSE:~ # rpm -qa | grep ssh
libssh2-1-1.4.3-18.3.x86_64
openssh-askpass-1.2.4.1-12.1.x86_64
openssh-helpers-7.2p2-13.1.x86_64
openssh-7.2p2-13.1.x86_64
OpenSUSE:~ #
(2)修改ssh配置文件
vi /etc/ssh/sshd_config
将#PasswordAuthentication no的注释去掉(如果有),并且将no修改为yes (允许通过密码认证登录)
将#PermitRootLogin yes的注释去掉
(3)启动SSH服务
OpenSUSE:~ # service sshd start (启动)
OpenSUSE:~ # service sshd restart (重启)
OpenSUSE:~ # service sshd status (查看ssh启动状态)
OpenSUSE:~ # service sshd stop (停止)
(4)防火墙关闭
你以为上面做好就可以使用SSH了,错,还需要对防火墙进行下设置。
4.1 命令行下打开YaST控制中心
OpenSUSE:~#yast
4.2进入防火墙配置页面,Security and Users -->Firewall 如下图
4.3禁止防火墙开机启动。
Start-Up -->Service Start -->(x) Disable Firewall Automatic Starting 将这个选上按空格键就行,完后Next下一步完成,这样防火墙就不会开机启动了
4.4关闭防火墙
Start-Up -->Switch On and Off -->Stop Firewall Now 选择这项回车就可以立即关闭防火墙.
设置自动启动ssh服务,如果不设置每次重启电脑都要从新启动ssh服务比较麻烦。
通过systemctl命令可以将sshd服务加到开机自启动列表里。实现开机自动启动sshd服务。
OpenSUSE:~ # systemctl enable sshd.service
三、安全防护
还要防护?
怎么样就是安全?
需要防护,不知道大家有没有看出配置ssh存在的问题。
是的,在ssh配置文件里面,允许了root用户远程登录,这个行为本身就是不安全的。
怎么变安全?
需要编辑/etc/ssh/sshd_config。
vim /etc/ssh/sshd_config
找到 PermitRootLogin
改为 PermitRootLogin no
你不会以为那样做就安全了吧,不安全,很不安全,本文只针对ssh这个进行简单讨论,其余安全问题,后期更新。
1.不允许使用空密码:PermitEmptyPasswords no
2.不允许输入密码登录:PasswordAuthentication no
不让输入密码绝对没有开玩笑,因为如果有了解的人就知道,这种完全可以使用字典进行爆破。
3.本次设置的root登录密码为123456,这个行为本身也是不合规的
passwd (要求密码至少有字符,数字,不少6位即合规)
4.修改端口
#Port 22
Port 6666
5.允许登录IP
#ListenAddress 0.0.0.0 (任意IP)
ListenAddress 192.168.4.100(登陆ip)
6.
LoginGraceTime 2m 输入密码错误后等2分钟
MaxAuthTries 6 每连接最多错误次数
最后
有任何问题,欢迎交流。
-
mysql允许null_Mysql:允许Null意思
2021-02-05 05:35:47为了理解“Allow Null”是什么意思,您需要了解什么是NULL,并且理解它与简单的零或空白字符串不同。NULL是SQL中的一个特殊值。它表示不存在的数据。这与空白的数据不同。当您在MySQL中创建表时,它允许您指定是否...为了理解“Allow Null”是什么意思,您需要了解什么是NULL,并且理解它与简单的零或空白字符串不同。
NULL是SQL中的一个特殊值。它表示不存在的数据。这与空白的数据不同。
当您在MySQL中创建表时,它允许您指定是否允许您的字段为NULL。如果指定“Allow Null”,则可以在这些字段中创建具有NULL值的记录。
在某些情况下,这可能对您有用。例如,“是/否”字段可能是布尔值,但如果用户未指定其首选项,则可能需要将其设置为NULL以指示此值,而不是默认为是或否。
在许多情况下,允许NULL可能是有问题的。设置为NULL的字段可能在查询中产生意外结果,因为在所有情况下,NULL不遵循与其他值相同的规则。例如:如果您查询上面的示例字段WHERE myfield!= 1,您可能希望获得不等于1的所有记录的结果。但是不会返回NULL字段;你需要为他们写一个特殊情况。
当执行JOIN查询时,NULL也用作默认值,其中某些结果没有要加入的记录。来自已连接表的未知字段将全部设置为NULL。
一般来说,如果您不确定如何使用“Allow Null”,则最安全的选项是将其设置为不允许为空。
希望有帮助。
-
C#中的??是什么意思
2016-10-14 09:27:00是什么意思 DJ8Angus|浏览 49982 次2012-01-16 12:07 2012-01-16 12:23 最佳答案 如果不赋予初值,C#的变量是不允许直接使用的。 但有的时候,让值的类型为空是非常有用的,比如三态bool...2012-01-16 12:23 最佳答案转载于:https://www.cnblogs.com/hellowin/p/5959106.html
-
python的包是什么意思_Python中“包”属性的用途是什么?
2021-01-14 23:51:53All I want to know is what exactly does __package__ mean它是一种允许显式相对导入的机制。__package__有三种可能的值类别包名称(字符串)空字符串无包装名称也就是说,如果模块位于包中,则__package__将设置为包... -
代码中的NBSP是什么意思???
2020-12-15 11:08:05<p>/*LED 显示空 */ /************** 在设置模式下对秒分时的宏定义 *****************/ #define SECOND 0 /* 对应数码管右边两位 */ #define MINUTE 1 /* 对应数码管中间两位 */ #define ... -
JS中 !/+/-/~function(){}()是什么意思?
2020-01-13 12:32:22解释:包围函数(function(){})的第一对括号向脚本返回未命名(匿名)的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数 作用:创建一个命名空间只要把自己所有的代码都写在这个特殊的函数... -
JS中(function(){xxx})(); 这种写法是什么意思?
2019-03-18 07:17:03解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数... -
JS中 !/+/-/~ function() {/*...*/}() 是什么意思?
2018-09-29 11:58:30解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数... -
转换空字符类型
2019-04-13 17:15:47这句代码的意思就是,允许为空的int类型。 但是正常情况下Int类型默认是不允许为空的 但是我们加了上文中Nullable这句代码之后int类型它就是可以为空 Nullable也等价与 int? int? 这种写法也就是Nul... -
nginx+php页面自动跳转时三级页面显示空白_如何在 PHP 中进行会话处理?
2020-12-21 14:17:41(给PHP开发者加星标,提升PHP技能)作者:.Roninhttps://www.cnblogs.com/heyue0117/p/12149817.html【前言】在 phper 的日常开发中,会话到底是什么意思?为什么需要会话、怎么使用它呢? 一起来学习下它吧。在PHP中... -
codefirst 导航属性为null_我赌你不清楚Spring中关于Null的这些事
2020-11-26 04:47:49之前一直在某些代码中看到过使用@Nullable 标注过的注释,当时也没有在意到底是什么意思,之后忍不住去调查一番,这篇文章来谈谈Spring中关于Null的那些事。在Java中不允许你使用类型表示其null的安全性,但Spring ... -
你必须知道的495个C语言问题.[美]Steve Summit(带详细书签).pdf 压缩版
2018-04-08 02:26:503.20 “semantics of‘>’change in ANSI C”的警告是什么意思? 71 3.21 “无符号保护”和“值保护”规则的区别在哪里? 71 第4章 指针 74 基本的指针应用 74 4.1 指针到底有什么好处? 74 4.2 我想声明一个... -
你必须知道的495个C语言问题
2015-10-16 14:14:281.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedefstruct{char*... -
你必须知道的495个C语言问题(中文高清版)
2013-03-20 13:28:281.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedefstruct{... -
[你必须知道的495个C语言问题]人民邮电出版社
2012-08-18 19:02:281.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedefstruct{... -
Queue、Deque、LinkedList学习
2020-11-17 23:38:24Queue 是 java.util 包下面的一个接口,继承了 Collection 接口,Queue的中文意思为队列;队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端... -
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:091.11 extern在函数声明中是什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,typedef 和#define有什么区别? 7 1.14 我似乎不能成功定义一个链表。我试过... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:183.20 “semantics of‘’change in ANSI C”的警告是什么意思? 42 3.21 “无符号保护”和“值保护”规则的区别在哪里? 42 第4章 指针 45 基本的指针应用 45 4.1 指针到底有什么好处? 45 4.2 我想声明... -
初学JAVA-17-String
2018-05-27 23:52:27在JAVA已经实现的各种类中,java.lang.String是一个非常特殊的类。...,这是一个空字符串,它的长度为0,但是它是一个正常的字符串,不同于null。 为什么说String是一个很特殊的类,因为在我们日常的... -
你必须知道的495个C语言问题.pdf
2013-01-20 14:30:543.20 “semantics of‘’change in ANSI C”的警告是什么意思? 3.21 “无符号保护”和“值保护”规则的区别在哪里? 第4章 指针 基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配一些空间... -
[你必须知道的495个C语言问题]人民邮电出版社.扫描版.pdf
2011-10-01 21:39:523.20 “semantics of‘’change in ANSI C”的警告是什么意思? 3.21 “无符号保护”和“值保护”规则的区别在哪里? 第4章 指针 基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配一些空间... -
初讲队列
2015-01-23 21:01:02队列中没有元素时为空列,这就像体操大赛,每个班按照班次站好,先是一班走操场,转一圈,喊一圈,然后站到最后一个班XX班后面,注意规则限定它只能这样,你可以问为什么,校长会告诉你,不按照次序整个操场 -
Linux之shell中的大括号、中括号、小括号的使用详解+多示例
2021-01-23 15:49:56摘要:很多人和我一样对于shell的各种括号的各种用法肯定不是很清楚,有时候看见别人脚本都不知道是什么意思,今天就来说说bash中的大中小括号的用法和解释,本人常用bash所以也只能用bash来说明了,若其他shell有... -
excel 学习------错误值
2013-12-03 23:54:53在Excel表操作过程中,如果输入了错误的值,或者公式调用的参数有问题,就会返回错误值。比如,除以0在Excel是不允许的,...那么,它们各自代表什么意思呢? #DIV/0! 错误原因:在公式中有除数为零,或者有除数为空白的