我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别.

1 .NET概述

.NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET Framework平台运行的所有编程语言.

2 C#概述

他是专门为.NET平台设计的一种语言.

3 .NET与C#的区别

.NET是一种平台,这种平台可以编译多种语言例如:VB,J#,而C#只是一种语言.

4 IDE

IDE全称(Itergrated Developer Environment)微软提供的强大集成开发环境.

在C#中创建你的第一个C#程序

1怎样在Visual Studio 2012中新建项目

①先在Visual studio 菜单栏中选择”文件”→”新建”→”项目”选项,接着会弹出”新建项目”

②在左侧的项目类型中选择”VisualC#”在右侧的模板列表中选择”控制台应用”选项.强调一下千万别选错了.

③在”名称”中输入想创建的项目名.

④为项目选择一个保存的位置.点击确定按钮,就创建了一个C#代码模块.

在C#中如何在控制台输出 ,如何让屏幕停留 的方法.

1关键代码

在Main()方法中添加以下代码是用来输出和输入的:

Console.WriteLine();//从控制台输出内容;

Console.Write();//如果不加Line输出的内容会在同一行显示;

Console.ReadLine();//从控制台输入,让屏幕停留;

Console.ReadKey();//让屏幕停留;

C#中Main()方法的四种形式

Main()方法的返回值只能是void 或int类型.

Static void Main(string[] args){}

Static int Main(string[] args){}

Static void Main(){}

Static int Main(){}

当创建一个新项目时编译器会创建第一个形式的Main()方法.

 C#中的数据类型

int 整型;

float浮点型(一般很少用到,用double代替即可.);

double 双精度浮点型;

string 字符串型(在C#中字符串型的关键字是小写的);

bool 布尔型(在C#中布尔型关键字为bool);

 C#中的常量

01什么是常量:

常量就是在程序运行过程中保持不变的值.

02语法:const 数据类型 常量名称=值;

例:const int age=19;(他在后续代码的书写中不能改变他的值.)

下面给大家介绍一种技术 海量代码折叠技术

快捷键 Ctrl+K+S;

#region (可以提供这段代码用途说明)

//代码

#endregion

占位符的应用

占位符和Java中的+连接符作用是一样,但用占位符比较方便代码的书写;

Eg;

 string name;

 int age;

Console.WriteLine(“请输入姓名:”);

 name=ConsoleReadLine();

Console.WriteLine(“请输入年龄:”);

 age=int.Prase(ConsoleReadLine());

Console.WriteLine(“姓名为:{};年龄为:{}.”,name,age);

Console.ReadLine();

C#中的两种命名法的简单介绍

01.骆驼命名法(Camel):

简单的说就首写字母小写,后续有含义的单词大写(只针对于变量命名);

例:cardName cardNumber;

02.帕斯卡命名法(Pascal):

所有单词的首字母都大写(针对于类名和方法名);

例:InputName SayHellow();

将接收到得数据转化成int类型这里只讲一种如果想转化成double方法是一样

 Console.WriteLine(“请输入一个数字:”);

  string num=int.Parse(Console.ReadLine());

 C#中的文档注释

C#中的文档注释和Java是有区别的:

在Java中文档注释:  /** */

在C#中文档注释为:///需写在方法上;

 /// <summary>

  /// 写对这个方法的一个说明,有利于在方法调用的时候知道这个方法是干什么的.

 /// </summary>

  /// <returns>写返回的是什么样的值</returns>

C#中类,对象和方法.

01.什么是类:

具有相同属性和行为的一系列事物的统称.

02.什么是对象:

对象是能在现实生活中找到的某个能区别于其他事物的一个独特个体。

03.类和对象的关系:

类是对象的模板,对象是类的实例.

看到这我想大家都觉得非常的枯燥乏味了吧!下面一起来看个关于C#的一个笑话开心开心吧!

这是个面试的笑话:

面试官:熟悉哪些语言?

应聘者:C#

面试官:知道什么叫类吗?

应聘者:我这人实在,工作努力,不知道什么类.

面试官:知道什么是包吗?

应聘者:我这人实在,平常不带包,也不用公司准备了.

面试官:知道什么是接口吗?

应聘者:我这个工作认真,从来不找借口偷懒.

面试官:知道什么是继承吗?

应聘者:我是孤儿没什么可继承的.

面试官:知道什么叫对象吗?

应聘者:知道,我工作努力,上进心强,暂时没有找对象的打算.

面试官:你知道什么是多态吗?

应聘者:知道,我很保守的,我认为让心爱的女人为了自己的一时快乐去堕胎是不到德的行为!请问这和C#有什么关系?

笑话就看完来大家接着看下面的内容吧!

C#语法快速热身

1 if结构(和Java中的用法相同)

if(条件表达式)

{

//代码块

}

2 if-else结构(和Java中的用法相同)

if(条件表达式)

{

//代码块1

}

else

{

//代码块2

}

3 多重if结构(和Java中的用法相同)

if(条件表达式1)

{

//代码块1

}

else if(条件表达式2)

{

//代码块2

}

else if(表达式3)

{

//代码块3

}

else

{

//代码块4

}

4 嵌套if结构(和Java中的用法相同)

if(条件表达式1)

{

if(条件表达式2)

{

//代码块1

}

else

{

//代码块2

}

}

else

{

//代码块3

}

5 switch 选择结构

在Java中switch选择结构中的表达式只能是(int/char)

而且选择结构中的break;可有可无.但在C#中switch选择结构中的表达式多了一个string类型;switch结构中每个case块后必须有break;如若不加,编译器会报错,除非在特殊情况下:case块后没有语句;

例如:

case1:

case2:

break;
switch(int/char/string表达式)

{

case1:

//语句

break;

case1:

//语句

break;

default:

break;

}

6 while循环结构(和Java中的用法相同)

While循环是先判断条件表达式是否成立,若条件成立,则执行循环体;否则结束循环.

while(条件表达式)

{

//代码块

}

7 do-while循环(和Java中的用法相同)

do-while循环先执行一次循环体在判断条件表达式是否成立,若条件成立,则继续循环;否则结束循环.

do

{

//代码块

}while(条件表达式);

8 for循环(和Java中的用法相同)

for循环反复执行一段代码,知道满足一定条件为止.

for(表达式1;表达式2;表达式3)

{

//代码块

}

9 foreach循环()

一般用来遍历整个集合和数组;

foreach(元素类型 元素变量名 in 数组)

{

//代码块

}

Eg:

,,,,};

Console.WriteLine("数组中的数为:");

   foreach(int item in num)

   {

     Console.WriteLine(item);

   }

    Console.ReadLine();

10 C#中的一对数组

01.例:如何在C#中定义一个长度为4的int类型数组:

第一种方式:

    ]{,,,};

  第二种方式:

    int[] age;

    age=]{,,,};

  第三种方式:

  ] { , ,  ,};

  第四种方式:

  ,,,};

02.foreach的局限性:

不能改变数组中个元素的值,如果想改变数个元素的值应使用for循环;

11 二重循环(和Java中的用法相同)

 int i, j; / /循环变量

 // 外层循环控制打印的行数

; i <= ; i++)

{

   // 内层循环控制每行打印数字的个数

    ; j <= i; j++)

    {

       Console.Write(j);

     }

   Console.WriteLine();

}

Console.ReadLine();

打印出的图形为:

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

12 冒泡排序

流程:每次比较相邻的两个数,较小数的交换到前面,较大的数交换到后面,每轮结束后最大的数总在最后.

例:将一个一个长度为5的int类型数组安升序排列

int[] num={20,30,10,40,0}

按冒泡排序的思想分析:

第0轮: {20,30,10,40,0}

第一次:20<30;不用交换位置.{20,30,10,40,0}

第二次:30>10;交换位置{20,10,30,40,0}

第三次:30<40;不交换位置{20,10,30,40,0}

第四次:40>0;交换位置{20,10,30,0,40}

第1轮: {20,10,30,0,40}

第一次:20>10;交换位置.{10,20,30,0,40}

第二次:10<30;不交换位置{10,20,30,0,40}

第三次:30>0;交换位置{10,20,0,30,40}

第2轮: {10,20,0,30,40}

第一次:10<20;不交换位置.{10,20,0,30,40}

第二次:20>0;交换位置{10,0,20,30,40}

第3轮: {10,0,20,30,40}

第一次:10>0;交换位置.{0,10,20,30,40}

i(多少轮)       j(每轮多少次)

0              4

1              3

2              2

3              1

i和j的一个关系:

i+j=4;

J=4-i;

num.Length数组的长度为5因此外层循环结束条件为num.length-1;内层循环结束条件为num.Length-1-i;

i+j=num.Length-1;

j=num.Length-1-i;

解析:外层循环控制多少轮(i)内层循环控制每轮循环多少次(j)

; i <num.Length-; i++)

            {

                ; j <num.Length--i; j++)

                {

                    ])

                    {

                        int newnum = num[j];

                        num[j] = num[j + ];

                        num[j + ] = newnum;

                    }

                }

            }

看到这你以成功的掌握了C#的基础知识了请大家务必看完下面的最后一点.

使用属性升级MyBank

1 访问修饰符

在之前我们学习到一个public(公有的) 访问修饰符它在任何位置都可以访问,它的访问级别最高,用public 修饰的都称为属性.在C#中也有一个访问修饰符private(私有的)它只能在当前类中访问,它的访问级别最低,用private修饰都称为字段.

2 属性

属性作用:修改和获取私有字段的值(间接对私有字段赋值,起到保护私有字段的作用)

private string name;

鼠标左键双击name快捷键Ctrl+R+E;

 public string Name

        {

            get { return name; }

            set { name = value; }

        }

3 this关键字

首先在一个类中定义一个私有字段private string name;然后一个public void StudentName(string name)方法中传入一个string 类型的name变量,如果我在方法体中写这样一行代码:name=name;给name赋值,但是编译器此时会报错,因为编译器此时无法辨别出代码中出现的这两个name 哪个是成员变量,这时需用到this关键字来区分,他指的是当前类的实例(对象)

4 向对象三大特性:

01.封装

可以将私有字段封装成属性,看成是一种封装(属性封装了字段)

可以将一个方法写到类中这种方式成为封装(类封装了方法)

02.继承

03.多态

5数据安全

static void Main(string[] args)

{

      Student stu = new Student();

      stu._age = -;//非法数据

      stu. _idCard = "; //身份证号不能被修改

}

有时候将类中的字段公开是不安全的,但是如果设为私有成员:

无法正常赋值,无法获得数据。

使用方法解决数据安全问题

1,使用者不可直接操作_age

2,用方法返回_age供读取

3,用方法限制使用者的非法赋值

private int _age;

public int 方法1()

{

    return this._age;

}

public void 方法2(int 参数)

{

  ||参数>)

  {

     ;

  }

  else

  {

    this._age=参数;

  }

}

这种写法太麻烦,于是诞生了属性

class Student

{

        private string name;

        public string Name

        {

            get { return name; }

            set { name = value; }

        }        

}

value相当于方法的参数,字段和属性的数据类型必须一致。

get用于获取相应字段的值,

set用于设置字段的值。

get和set都存在,读写属性。只有get时,只读属性。只有set时,只写属性。

属性的作用:控制私有字段的可访问性,保护内部数据的安全。

建议:类内部敏感字段使用属性来控制访问

类的成员:字段、属性和方法

属性是不能用来存储对数据的,真正的数据是存储在字段中的。

6参数的传递方式

参数传递有两种方式:值传递和引用类型传递

注意:值传递不能保留参数的修改,要按引用传递,使用ref通过引用传递参数:定义和调用时,在参数前都要使用ref;在方法调用前:作为参数的变量要声明并赋值 ;

谢谢!你们抽出宝贵的时间来看,希望对你们有帮助,如果文章有错误之处请大神们及时给我指正.

我们为之奋斗过的C#-----C#的一个简单理解的更多相关文章

  1. 浅谈为之奋斗过的Set接口

    Set接口 Set接口存储一组唯一,无序的对象 HashSet 是Set接口常用的实现类 HashSet允许集合元素值为null 操作数据的方法与List类似 Set接口不存在get()方法 set ...

  2. 我们为之奋斗过的C#之---简单的库存管理系统

    今天非常开心,因为今天终于要给大家分享一个库存管理项目了. 我个人感觉在做项目之前一定先要把逻辑思路理清,不要拿到项目就噼里啪啦的一直敲下去这样是一不好的习惯,等你做大项目的时候,你就不会去养成一种做 ...

  3. 我们为之奋斗过的C#-----Bank系统

    首先感谢大家抽出宝贵的时间来看这个Bank系统,这是我最近学的Bank系统,你们看我刚一学完就给你们分享了我的所学以及学习的一些经验,所以大家一定要耐心看下去,真的你会有所收获的,不信你看看.下面话不 ...

  4. 我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗

    文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没有一个简单的了解,或一个系统的入门学习.换句 ...

  5. 精通Perl(第2版)

    精通Perl(第2版)(通往Perl大师之路必读经典书籍,体现了一种编程思维,能够帮你解决很多实际的问题) [美]brian d foy(布瑞恩·D·福瓦)著   王兴宇 刘宸宇 译 ISBN 978 ...

  6. 从.NET和Java之争谈IT这个行业

    一.有些事情难以回头 开篇我得表名自己的立场:.NET JAVA同时使用者,但更加偏爱.NET.原因很简单 1.NET语言更具开放性,从开源协议和规范可以看出; 2.语言更具优势严谨; 3.开发工具V ...

  7. “胡”说IC——菜鸟工程师完美进阶

    “胡”说IC——菜鸟工程师完美进阶(数十位行业精英故事分享,顶级猎头十多年来经验总结,对将入或初入IC电子业“菜鸟”职业发展.规划的解惑和点拨.) 胡运旺 编著   ISBN 978-7-121-22 ...

  8. 2015年,从毕业到工作的几点感悟(Android开发新人)

    锄禾日当午,汗滴禾下土.       2015年,从毕业到工作的几点感悟(Android开发): 多用三方类库:(成长经验:尽量不要自己手动实现网络上已经有的优秀开源类库的功能,例如: 网络请求:常见 ...

  9. 见证历史 -- 2013 NBA 热火夺冠之路有感

    见证历史-- 2013 NBA 热火夺冠之路有感今年NBA季后赛从第一轮看起,到最终的热火夺冠,应该看得是最爽的一次.但一些情节和细节,回忆起来,深有感悟. 1. 做人要低调詹宁斯豪言演黑八雄鹿本赛季 ...

随机推荐

  1. JavaWeb学习总结-04 Servlet 学习和使用

    一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...

  2. JavaWeb---总结(十五)JSP基础语法

    一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素.  JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将 ...

  3. wpf arcgis engine 当前没有或未启用Spatial Analyst许可解决办法

    用wpf 在做叠加分析时 遇到了一个错误:“ERROR 010096:当前没有或未启用Spatial Analyst许可”:在环境中把这个Spatial Analyst扩展功能给勾了也不能解决,现在把 ...

  4. 创建 sequence

    -- Create sequence create sequence XRMKSD_DET_SEQminvalue 1maxvalue 999999999999999999999999999start ...

  5. 英文分词算法(Porter stemmer)

    http://blog.csdn.net/whuslei/article/details/7398443 最近需要对英文进行分词处理,希望能够实现还原英文单词原型,比如 boys 变为 boy 等. ...

  6. Python QQ群

    微信公众号:Python中文社区 Python初级技术交流QQ群:152745094Python高级技术交流QQ群:273186166Python网络爬虫组QQ群:206241755PythonWeb ...

  7. C#验证子网掩码的正确性

    1.       IP合法关于IP地址的合法性验证很简单,方法也很多,比如字符串分解.正则表达式等. 2.       子网掩码是否合法简单来讲,子网掩码就类似这样一串数字,前面一段是连续的1, 类似 ...

  8. JavaScript学习笔记——变量和数据类型

    一.javascript命名规范 1. 严格区分大小写 2. 变量的命名必须以字母或 _或 $开头,余下的部分可以是任意的字母,数字,或者是 _或者是$ 3.不能用关键字或者是保留字命名. 4.jav ...

  9. linux curl 命令详解,以及实例

    linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻 ...

  10. %1 不是有效的Win32应用程序

    用 64bit 的 Python 调用 32bit 的 Dll 会出错