C#概念总结(二)
1、C#的方法:<access Specifier> <Return Type>< Method Name>(Parmeter list){ method Body}
其中 Method Name是一个唯一的标志符,且大小写敏感, parmeter list 参数列表,该参数用来接收和传递方法使用的参数,参数列表是指方法的参数类型,顺序和数量,参数是可选的,一个方法可以不包函参数。
附录:今天做实验的时候发现一个奇怪的现象,就是在kali linux 中使用 kali U 盘时候,就U盘的格式修改成监听模式,即混杂模式后,在Windows,也就是自己的宿主机上连接在五香网卡会失效。
2、C#参数传递 当调用带有参数的方法的时候,我们需要向方法传递参数,C#中有三种方式向方法传递参数。分别是值参数、引用参数、输出参数。
值参数: 这种方式 赋值参数的实际值给函数的形式参数,实参和形参使用两个不同的内存地址,在这中情况之下,当形参发生改变的时候,不会影响实参的值。从而保证了实参的安全性。
引用参数: 这种方式赋值参数的内存地址给引用形式参数,当形式蚕食发生改变的时候,同时也改变了实参的值。
输出参数: 这种方式返回多个值。
引用传递参数; 是对变量的内存地址的引用,当按因用户传递参数的式,与值参数不同的是,他不会为这些参数创建一个新的存储的位置,引用参数表示提供给方法的参数具有相同的位置。 在C#中使用C#关键字声明引用参数。
输出传递参数:
return语句可以用在只从函数返回一个值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
numberManinputlation Te = new numberManinputlation();
int a = 100;
Console.WriteLine(" 调用之前输出{0}", a);
Te.getValue(out a);
Console.WriteLine("调用之后输出{0}", a);
Console.ReadKey();
int c, b;
Te.getValues(out c,out b);
Console.WriteLine("c: {0}", c);
Console.WriteLine("b:{0}", b);
Console.ReadLine();
}
}
class numberManinputlation {
public void getValue(out int x) {
int temp=34;
x = temp;
}
public void getValues(out int a, out int b) {
Console.WriteLine("please input noe number");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("please input second number");
b = Convert.ToInt32(Console.ReadLine());
}
}
}
3、C#可空类型:
nullabe 类型,表示基础值类型正常范围内的值,再加上一个null 值。类似的nullable<bool> 表示被赋值为true或false或者 null
4、C#数组 (Array): 数组是一个存储在相同类型的固定大小的顺序的集合,书序是用来存储数据的集合,通常认为数组是一个同一个人类型的变量集合,所有数组都是由连续的的内存地址位置构成,最低的地址对应的是第一个元素,最高的对应最后一个元素。声明数组语法格式: datatype[] arrname;
声明一个数组并不会初始化,当初始化数组变量的时候,可以给数组赋值。 数组是一个引用类型。所以使用关键字new 来常见数组的实例。
double [] balance=new double[12];
数组的初始化还可以这样写。 一边初始化一边进行赋值 int [] marks=new int[34] {23,24,34545,5656,5756,}; 这样的话还可以省略数组的大小声明。
数组的访问:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
bool numbersOk = false;
double var1, var2;
var1 = 0;
var2 = 0;
while (!numbersOk) {
Console.WriteLine("Give me a number");
var1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Give me second number");
var2 = Convert.ToDouble(Console.ReadLine());
if((var1>10)&&(var2>=10)){
numbersOk=true;}
else{
if((var1<=10)&&(var2<=10)){
numbersOk=true;}
else{
Console.WriteLine("one number may be great ");
}
}
}
Console.WriteLine("your input numbers is {0},{1}",var1,var2);
Console.WriteLine("you true or false is numberOK {0}", numbersOk);
Console.ReadLine();
Console.ReadKey();
Test T = new Test();
Console.WriteLine("下面进行的输入");
T.Panduan();
Shuzu S = new Shuzu();
S.shuzu();
StringTest St = new StringTest();
St.ceshiString();
Console.ReadKey();
}
}
class Test {
public void Panduan() {
String[] i={"ds","sfsdf"};
if (i.Length != 2) {
Console.WriteLine("Two argument requried");
return;
}
string param1 = i[0];
//int param2 = convert.toint32(i[1]);
Console.WriteLine("String parameter {0}", param1);
//console.writeline("string parameter {0}", param2);
Console.ReadKey();
Console.ReadLine();
}
}
class Shuzu {
public void shuzu() {
int[] n = new int[10];
//初始化数组 n的元素
for (int i = 0; i < 10; i++) {
n[i] = i + 100;
}
for (int j = 0; j < 10; j++)
{
Console.WriteLine("inputout number {0}", n[j]);
}
Console.ReadLine();
foreach (int j in n) {
int i = j - 100;
Console.WriteLine("Elemnt{0}={1}",i,j);
}
Console.ReadKey();
}
}
class Foreachtest {
public void xunhuan(){
}}
class StringTest {
public void ceshiString() {
String fname;
String laname;
fname = "TianYa";
laname = "ming";
String fullName = fname + laname;
Console.WriteLine("Full name is {0}", fullName);
Console.ReadLine();
char []letters = { 'w', 'e', 'W' };
String greetings = new String(letters);
Console.WriteLine("Greeting :{0",greetings);
Console.ReadKey();
//返回字符串
String[] sarray = { "Hello", "Form" };
String mesage = String.Join("", sarray);
DateTime waitng = new DateTime(2012, 12, 12, 17, 12, 45);
String hat = String.Format("message sent at {0}", waitng);
Console.ReadKey();
}
}
}
5、String类的方法
public staticint Compare(String strA,Sttring strB) 比较两个制定的String对象,并返回一个表示他排列书序中的相对位置。该方法区分大小写。
public static Compare(String strA,Strign strB,bool ignoreCase) 比较两个指定对象的,,并返回表示一个在排列的顺序中的相对位置整数。次方法忽略大小写
public static Concat(String A,String B) 连接两个对象
public static String Comcat(Sting A,String B,String C) 连接三个对象
| public bool Contains( string value ) 返回一个表示指定 string 对象是否出现在字符串中的值。 |
|
| 7 | public static string Copy( string str ) 创建一个与指定字符串具有相同值的新的 String 对象。 |
| 8 | public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。 |
| 9 | public bool EndsWith( string value ) 判断 string 对象的结尾是否匹配指定的字符串。 |
| 10 | public bool Equals( string value ) 判断当前的 string 对象是否与指定的 string 对象具有相同的值。 |
| 11 | public static bool Equals( string a, string b ) 判断两个指定的 string 对象是否具有相同的值。 |
| 12 | public static string Format( string format, Object arg0 ) 把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。 |
| 13 | public int IndexOf( char value ) 返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。 |
| 14 | public int IndexOf( string value ) 返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。 |
| 15 | public int IndexOf( char value, int startIndex ) 返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 |
| 16 | public int IndexOf( string value, int startIndex ) 返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 |
| 17 | public int IndexOfAny( char[] anyOf ) 返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。 |
| 18 | public int IndexOfAny( char[] anyOf, int startIndex ) 返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 |
| 19 | public string Insert( int startIndex, string value ) 返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。 |
| 20 | public static bool IsNullOrEmpty( string value ) 指示指定的字符串是否为 null 或者是否为一个空的字符串。 |
| 21 | public static string Join( string separator, string[] value ) 连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。 |
| 22 | public static string Join( string separator, string[] value, int startIndex, int count ) 连接接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。 |
| 23 | public int LastIndexOf( char value ) 返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。 |
| 24 | public int LastIndexOf( string value ) 返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。 |
| 25 | public string Remove( int startIndex ) 移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。 |
| 26 | public string Remove( int startIndex, int count ) 从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。 |
| 27 | public string Replace( char oldChar, char newChar ) 把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。 |
| 28 | public string Replace( string oldValue, string newValue ) 把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。 |
| 29 | public string[] Split( params char[] separator ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。 |
| 30 | public string[] Split( char[] separator, int count ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。 |
| 31 | public bool StartsWith( string value ) 判断字符串实例的开头是否匹配指定的字符串。 |
| 32 | public char[] ToCharArray() 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。 |
| 33 | public char[] ToCharArray( int startIndex, int length ) 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。 |
| 34 | public string ToLower() 把字符串转换为小写并返回。 |
| 35 | public string ToUpper() 把字符串转换为大写并返回。 |
| 36 | public string Trim() 移除当前 String 对象中的所有前导空白字符和后置空白字符。 |
的风格大方
C#概念总结(二)的更多相关文章
- ZooKeeper的基本概念(二)
第一篇博文,我们对Zookeeper有了一个简单的认识,而且比较浅显,易懂,这篇博文,我们了解它的基本概念,如下图所示: 了解它的基本概念,有助于我们后面的学习,虽然今天的文章都是概念性质的内容,但是 ...
- Spring使用 --- 基本概念(二):AOP,面向方面编程
Table of Contents 什么是面向方面编程 怎样使用 什么时候使用 好处 本文讲述sprint的第二个基本概念: AOP,即面向方面编程 什么是面向方面编程 软件项目中,日志系统等服务系统 ...
- Kubernetes — 深入解析Pod对象:基本概念(二)
作为 Kubernetes 项目里最核心的编排对象,Pod 携带的信息非常丰富.其中,资源定义(比如 CPU.内存等),以及调度相关的字段.在本篇,我们就先从一种特殊的 Volume 开始,来帮助你更 ...
- Docker概念(二)
说明: 一直想学Docker,容器.镜像.仓库什么的好难理解就没怎么看了,最近下定决心好好看看,google.Baidu发现这篇好文章,看完差不多有个大概的理解.里面的内容基本上来以下 ...
- 通信原理之TCP/IP基本概念 (二)
本来想写写,但发现有人写的很好了,不造轮子了! 直接转了 一.为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是 ...
- MySql概念(二)
一.Sql规范? sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 在使用它时,只需要发出“做什么 ...
- 【Apache】Apache服务的基本概念(二)
Apache服务的基本概念 Apache安装请参照:[Apache]Apache服务的安装(一) 1.端口 apache默认监听TCP协议端口80端口 2.apache服务 apache服务默认会启动 ...
- IntelliJ IDEA 2017版 spring-boot 2.0.3 邮件发送搭建,概念梳理 (二)
第二部分 邮件发送历史 一.第一封邮件 1.1969年10月,世界上的第一封电子邮件 1969年10月世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短 ...
- JavaScript之基本概念(二)
今天主要介绍两个东西:JS标识符和数据类型 一 变量和常量 在介绍标识符之前有必要先了解一下JS中的变量和常量. 变量:程序执行期间可操作的临时存储数据的内存空间. 声明方式: var:函数作用域,变 ...
- Git的一些概念(二)
一.Git的结构 二.Git和代码托管中心 代码托管中心的任务:维护远程库 1. 局域网内 GitLab 服务器 -- 可以自己搭建 2. 外部环境 GitHub 码云 三.本地库和远程库 1. 团队 ...
随机推荐
- mongodb 系列 ~ mongo的副本集(3)
一 简介:今天咱们来聊聊mongodb复制的具体一些案例 二 副本集 1 当mongodb采用全量复制时,如何观察全量复制的进度 对比文件本身和primary大小 2 mongodb全量复制的过程 旧 ...
- mysql 原理 ~ DDL之在线DDL
一 简介:今天来DDL的变革二 DDL演化方式: 1 copy table : 1 创建临时表2 copy数据到临时表 3 rename进行交换 缺点 1 阻塞事务 2占用磁盘空间 2 inpla ...
- maven坐标的获取
网址:https://mvnrepository.com 网站上可以搜索具体的组织或项目关键字,之后复制对应的坐标到pom.xml中.如:
- [转] python运行时内存分析工具meliae
转自:https://my.oschina.net/markco/blog/601773 利用meliae来监控python进程的内存占用情况 meliae是一个python进程内存占用监控.分析工具 ...
- Http 请求头中 X-Requested-With 的含义
昨天看代码的时候,看到了这个一句 String requestedWith = ((HttpServletRequest) request).getHeader("X-Requested-W ...
- 【转】python模块导入细节
[转]python模块导入细节 python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码 ...
- eMMC基础技术7:Bus Speed Modes
1. 前言 eMMC有多种速率模式,主要根据如下几个方面进行划分: single rate or dual rate I/O电压 BUS宽度 支持的clock频率范围 最大的传输速率 2. 概览 图 ...
- webstorm的快捷键总结
ctrl+shift+f 可以在项目和模块中的文件中查找特定字符串 shift键连续敲一下,可以在项目和模块中查找特定的文件 ctrl+d 复制当前行并粘贴到下一行 ctrl+shift+上下方向键 ...
- nginx反向代理解决跨域
nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上.通过把本地一个url前缀映射到要跨域访问的web服务器上,就可以实现跨域访问.对于浏览器来说,访问的就是同源服务器上的一个 ...
- 利用jsoncpp将json字符串转换为Vector
在API测试过程中经常会遇到传入参数为复杂类型,一般情况下在python下,习惯用字典来表示复杂类型.但是c++对字符串的处理是比较弱智的,一般c++里边会用vector来存储复杂类型,那么就存在转换 ...