c#基础这些你都看过吗?(一)-----仅供初学者使用
1、注释(不写注释是流氓,名字瞎起是扯淡)
‘///’一般用于注释函数,注释类。
2、快捷键
ctrl+k+d(有语法错误无法进行对齐)
ctrl+j(快速弹出只能提示)
shift+end,shift+home 键从行首到行尾,从行尾到行首;
ctrl+k+c 注释 ctrl+k+u取消注释
alt+shift+f10 打开说明引用空间。
f1转到msdn
f12转到定义
3、数据类型
decimal money=5000m;(金钱类型)
String 和string在c#中都一样。String是.net平台中共用类型,string是c#中专有的,它们两个都会映射到System.class类中。
4、命名规范
*1、Camel命名规范(多用于变量命名):首单词首字母小写,其余单词首字母大写。
*2、Pascal命名规范(多用于类或者方法命名):所有单词首字母大写。
5、占位符
使用方法:先挖个坑,再填个坑。
Console.WriteLine("..{0},...{1},...{2}",n1,n2,n3);
6、转义符
\n:换行,但是在windows系统中不认识\n,只认识\r\n;
\":输出半角引号
\t:tab键(排版)
\b:退格,首尾放置无效,只是退格一个。
@:1、取消\在字符串中的转义作用。2、保留原格式输出。
7、枚举
=====枚举与int和string之间转换===
@1、枚举类型默认可以和int类型相互转换 枚举类型跟int是兼容的
@2、枚举类型转换成string,用toString();
枚举类型 对象名 =(枚举类型)Enum.Parse(typeof(枚举名),string s);
8、属性
惯用法:属性开头字母大写,字段开头字母小写。
class Person
{
private int age;
public int Age
{
set
{
this.age=value;
}
get
{
return this.age;
}
}
9、c#中无全局变量一说,只能用静态字段来模拟全局变量。
10、c#中三大参数
1)out参数:
如果在一个方法中返回多个相同类型的值的时候,可以考虑返回一个数组。
但是返回多个不同类型的值时就需用out。out既可以返回多个相同值也可以返回多个不同值。
其实out作用就是:返回被调用函数的多个值。与一般返回方向是相反的。
注意:out定义变量必须在被调用函数中赋值。
2)ref参数:
能够将一个变量带入一个方法中改变,改变完成后,再将改变后的值带出方法。
main()
{
int s=10;
Test(ref s);
}
Test(ref s1)
{
s1+=3
}
3)parame参数:
可变参数
将实参列表中与可变参数数组中类型一致的类型当作数组的元素。既实参可以不用声明数组。
main
{
test(“为”,34,389,34);
}
test(string name,params int[] score)
{
}
11、方法的重载和返回值无关,至于方法名、参数类型、个数有关。
12、静态与非静态的区别
1)、在非静态类中,既可以有实例成员,也可以静态方法。静态类中只能出现静态成员。
2)、在调用实例成员时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要类名.静态方法。
总结:静态成员必须使用类名去调用,实例成员用对象去调用。
静态函数中只能访问静态成员,不允许访问实例成员。
实例方法既可以使用静态成员,也可以使用实例成员。
静态类中只能出现静态成员。静态类无法实例化。
使用:
1)、如果你想要你的类当做一个“工具类”去使用,这个时候可以考虑写成静态的类
2)、静态类在整个项目资源共享。静态类是占内存的。
GC Garbage Collection 垃圾回收器。
13、构造函数
作用:帮助我们初始化对象,构造函数是一个特殊的方法。
1)构造函数没有返回值,连void也没有
2)构造函数的名称必须和类名一样。
14、new
1)在内存中开辟一块空间;
2)再开辟的空间中创建对象;
3)调用对象的构造函数初始化对象。
构造函数必须是public。
15、this
1)代表当前类的对象。
2)在类当中显式调用本类的构造函数 :this
16、在一个项目中引用另一个项目的类
1)、先引用项目
2)、引用另一个项目的命名空间。
17、值类型和引用类型
区别:
1、值类型和引用类型在内存上存储的地方不一样
2、在传递值类型和传递引用类型的时候传递的方式不一样。
值类型我们称之值传递,引用类型我们称之为引用传递。
值类型:int 、double、char、bool、decimal、struct、enum
引用类型:string、自定义类
存储:
值类型存储在内存的栈中。
引用类型存储在内存的堆中。
18、字符串
1)、字符串的不可变性,如果字符串被重新赋值,老值并不删除,而是在栈中将老的
地址删除,重新给字符串赋予新的地址值。
当程序结束后,GC扫描整个内存,如果发现有的空间没有指向,则立即销毁。
2)、可以将string类型看作是char类型的只读数组。
例:
string s="abcde";
//S[0]='B';不能这么做,因为是只读的
//如果改变的话,首先需进行对string的转换。
char []chs=s.ToCharArray();
//将字符数组转换成我们的字符串
s=new string(chs);
Console.WriteLine(s[0]);
19、StringBuilder
当字符串进行大量的循环累加时,会进行大量的开辟新的内存空间,比较慢。
计时:Stopwatch Start(); Stop(); Stopwatch.Elapsed //记录运行的总时间。
StringBuilder.Append(i);追加方式进行累加。
StringBuilder会节省很大时间,原因在于它不开辟新空间,然后再将StringBuilder转换为String
20、字符串方法
1)、Length()
2)、ToUpper()
3)、ToLower()
4)Equals(str1,StringComparision.OrdinalIgnoreCase):比较两个字符串是否一致
,并忽略大小写。
5)、Splite(字符数组,StringSplitOptions.RemoveEmptyEntries),则将字符数组内容删除,并且不返回空数组和null。
6)、Contains()
7)、Replace(str1,str2)
8)、string.Substring();
9)、string.StartWith()/EndWith()
10)、string.indexof()返回int类型,返回字符串首先出现的位置
11)、string.LastIndexof()最后一个字符串出现的位置。
12)、string.trim()移除字符串中所有空格。string.trimStart()/trimEnd();
13)、string.IsNullOrEmpty()
14)、string.Join();能够将指定的分隔符加入到数组中进行分割。
c#基础这些你都看过吗?(一)-----仅供初学者使用的更多相关文章
- 小学生都看得懂的C语言入门(1): 基础/判别/循环
c基础入门, 小学生也可以都看得懂!!!! 安装一个编译器, 这方面我不太懂, 安装了DEV-C++ ,体积不大,30M左右吧, 感觉挺好用,初学者够了. 介绍下DEV 的快键键: 恢复 Ctrl+ ...
- 月薪3万的python程序员都看了这本书
想必大家都看过吧 Python编程从入门到实践 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌 ...
- 手撕redis分布式锁,隔壁张小帅都看懂了!
前言 上一篇老猫和小伙伴们分享了为什么要使用分布式锁以及分布式锁的实现思路原理,目前我们主要采用第三方的组件作为分布式锁的工具.上一篇运用了Mysql中的select ...for update实现了 ...
- NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...
- 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用
学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...
- VSS的运用小内容(针对于vs2008版本)(小的问题都是,仅供参考--只针对于菜鸟级的)
自己开始接触vss 的时候有些小的习惯没有很好的养成,下面的有关VSS内容都是简单的迁入迁出的问题,(仅供参考) 1.文件的迁入迁出:(.txt..xlsx..doc) a:文件的覆盖问题: 对于文件 ...
- 一篇自己都看不懂的点分治&点分树学习笔记
淀粉质点分治可真是个好东西 Part A.点分治 众所周知,树上分治算法有$3$种:点分治.边分治.链分治(最后一个似乎就是树链剖分),它们名字的不同是由于分治方式的不同的.点分治,顾名思义,每一次选 ...
- 零基础自学人工智能,看这些资料就够了(300G资料免费送)
为什么有今天这篇? 首先,标题不要太相信,哈哈哈. 本公众号之前已经就人工智能学习的路径.学习方法.经典学习视频等做过完整说明.但是鉴于每个人的基础不同,可能需要额外的学习资料进行辅助.特此,向大家免 ...
- 零基础自学Python是看书还是看视频?
很多人都碍于Python培训班的高昂费用和有限的空余时间都选择自学Python,但是没有老师帮助,显得有些迷茫,不知应该从何处学起,也不知识看书学习还是应该看视频学习.本就来谈谈这个话题. 我们先 ...
随机推荐
- C# 清除当前窗体中TextBox控件中的内容
//当有多个窗体时,对顶层的窗口进行操作,例如:我们开发具有录入功能的界面的时候,为了防止提交后的二次(重复)录入,希望点击提交按钮并提示成功后,界面的所有文本框内容能够自动清空.NET Framew ...
- Poj 1054 The Troublesome Frog / OpenJudge 2812 恼人的青蛙
1.链接地址: http://poj.org/problem?id=1054 http://bailian.openjudge.cn/practice/2812 2.题目: 总时间限制: 10000m ...
- php 加密解密方法2
<?php /* * @param $string 要加密或解决的字符串 * @param $operation 加密/解密 ENCODE加密, DECODE 解密 * @param $key ...
- App开发中甲乙方冲突会闹出啥后果?H5 APP 开发可以改变现状吗
随着各种应用的全面App化,因App而起的合作纠纷也日益增多,其中不乏最终对簿公堂的情形.WeX5(html5开发工具)为您汇总了三个典型的真实案例,方便您体会甲乙方冲突情景. 在围观别人争吵之余,您 ...
- JS验证用户真实姓名
发布:thebaby 来源:脚本学堂 [大 中 小] 本文分享下,使用js代码验证用户真实姓名的方法,有需要的朋友不妨参考下,希望对你有一定的帮助. 原文地址:http://www.jbx ...
- PHP初学留神(四)
这周去听了Google的演讲,从Idea到Code的商业宣传.不过因为是头一次听英文演讲,心里还是很舒服.这周主要做的是Bootstrap前端美化,这个框架也比较好玩.在php上面花的时间相对少了,也 ...
- 详解MySQL中EXPLAIN解释命令(转)
explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: expla ...
- Oracle 事务相关的一些测试
1.sqlplus 客户端正常退出 SQL> desc t; 名称 是否为空? 类型 ----------------------------------------- -------- --- ...
- 与wait for a undo record相关的系统卡死
今天下班之前同事过来找我寻求帮助,说是某客户的ORACEL数据库服务器从昨天起就开始很奇怪,一个语句执行很慢很慢,好像整个系统都卡住了. 问题1:请问最近应用系统有更新过程序吗?答:没有更新 ...
- 【Error listenerStart】 Error listenerStart Context [] startup failed due to previous errors
发给 报错信息 八月 12, 2015 11:58:19 上午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandle ...