C#初级知识点整理及VS的简单使用

C#预处理器指令
#define #undef 声明一个不需赋值的变量
注意的一点事它必须放到using 上面,如

#define TEST
using System.xxx;
public class Task
{
    public Task()
    {
    }
}

#region #endregion
这是一组用来帮助管理代码布局的指令

#if #else #elif #endif
if else 没什么好说的。不过这个一般要跟#define搭配使用

#warn #error
输出警告或错误

#if DEBUG

#endif

这个比较有用,指定了一个只在调试的时候才执行的代码块,发布的时候会被自动删除

当然 这些功能都可以用一组快捷键来实现:  CTRL + K ,CTRL + S

选中一段代码然后使用这组快捷键就可以



ref参数

当把一个参数传给一个方法的时候,如果这个参数是传送的值,那么无论在方法中它被如何更改都不会影响方法外的原值;但如果加上ref的话,这个值就会被作为引用传递

static void Reset(ref int b)
{
    b = 1;
}

static void Main(string[] args)
{
    int n = 0;
    Reset(ref n);
}

注意的是,定义和使用方法的时候,形参和实参前都要加ref;



可选参数

有的时候某些参数是可选的,并且有默认值。(有点像重载)

static void Reset(int b,int c = 2,int d=3)
{
    Console.WriteLine("n:{0}", b+c+d);
}

static void Main(string[] args)
{
    Reset(1);
}

但要注意的是可选参数必须放到最后定义。下面这样是不对的

static void Reset(int c = 2,int d=3,int b)
{
    Console.WriteLine("n:{0}", b+c+d);
}

调用的时候 是按顺序赋值。

Reset(119);//给b赋值
Reset(119,5);//给b,c赋值
Reset(119,5,7);//给b,c,d赋值

但如果不想按顺序赋值,或者有些参数不想赋值则可以用以下方式调用

Reset(110,d:5);//给b,d赋值


属性的概念

public class Person
{
    private string name;

    public string Name
    {
        set
        {
            name = value;
        }
        get
        {
            return name;
        }
    }
}

如果不添加set访问器的话,就成了只读属性。(相应的也有只写属性)

public class Person
{
    private string name;
    public string Name
    {
        get
        {
            return name;
        }
    }
}

这还有种简单的写法

public class Person
{
    public string Name{set;get;}
}

但这种自动实现的属性必须有两个访问器。否则会出错,如下面这样

public class Person
{
    public string Name{get;}
}

如果想设置只读的话,可以通过改变访问权限的方式实现:

public class Person
{
    public string Name
    {
        private set;
        get;
    }
}


 继承

①在C#中 子类调用父类要用base,如

public class Student:Person
{
    public override void ShowName()
    {
        base.ShowName();
    }
}

这就如同Java中的super一样。

②对于父类的方法,如果想将来可以被覆盖的话,必须显式的将函数声明为virtual,而子类覆盖该方法的时候也必须声明为override。这是因为在C#中方法默认都是虚方法。这跟Java是截然不同的。

③抽象类

如果某个类是抽象的话,那么该类中的方法也都必须是抽象的;相反,如果某个方法是抽象的话,该类也必须是抽象类。

这个抽象关键字与Java中相同,都是abstract。注意的是抽象方法声明为abstract而不能加virtual。

④密封类

将类声明为sealed意味着该类无法被其他类所继承。这个的用处参照类string

⑤关键字internal

带有internal的类或属性方法只有在同一个程序集(命名空间)下的程序才能获得,等同于Java下的default。



VS2010中比较有用的快捷键

  • 定位搜索

编辑(Edit)菜单中选择“Navigate To”(定位到) 或者通过Ctrl+, 打开定位搜索窗口。在搜索栏(模糊查询的功能很强)中输入查询内容,VS2010 将列出相关结果信息。

双击搜索结果可到达代码位置。

  • 调用层次结构

在方法、属性、构造函数上点击鼠标右键可查看调用层次结构,如果是刚接手的项目就可以用这个方法了解其相关程序结构。

  • 查看引用情况

Ctrl + K + R 可查看方法、属性、构造函数的引用情况,代码重构和了解代码结构的利器



VS的WCF测试工具

路径 Microsoft Visual Studio XX.0\Common7\IDE\WcfTestClient.exe

还有一个第三方的服务测试工具 SoapUI 用法类似



页面错误事件监听

网页出错误再说难免,后台错误处理不够谨慎,数据格式判断不够全面,都有可能出现。但是这些东西不能让用户看到,即使是拿个委婉点的Sorry Page来糊弄也可以。

为了解决这个问题,我们可以覆盖Page的OnError事件(当后台处错误的时候都会进入该事件),并作出相应处理 一般是跳转到某个指定页面

protected override void OnError(EventArgs e)
{
    Response.Redirect("Sorry.htm");
}


C#初级知识点整理及VS的简单使用

时间: 2024-09-27 22:24:51

C#初级知识点整理及VS的简单使用的相关文章

linux初级知识点整理

1.配置linux的IP地址有两种方法 方法一:dhclient自动获取IP地址 方法二:手动配置IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 进入配置文件后修改如下: ONBOOT=yes BOOTPROTO=static IPADDR=192.168.31.170(如为虚拟机,则需要与真机处于同一网段) NETMASK=255.255.255.0 GATEWAY=192.168.31.1(真实网关) DNS1=8.8.8.8(可配置两个D

asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比

通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致的概括下. (1). ActionResult(base):最基本的Action类型,返回其他类型都可以写ActionResult. (2). ContentResult:返回ContentResult用户定义的内容类型. public ActionResult Content() { return

第一次提交《软件测试》第1、2章知识点整理

<软件测试>第1.2章知识点整理 第1章 软件测试的背景 1.1 臭名昭著的软件错误用例研究 1.1.1 迪斯尼的狮子王 1994-1995(兼容性) 1.1.2 英特尔奔腾浮点除法缺陷 1994(缺陷处理) 1.1.3 美国航天局火星极地登陆者号探测器 1999(集成测试) 1.1.4 爱国者导弹防御系统 1991 (长时间测试的压力) 1.1.5 千年虫问题 1974 (算法设计) 1.1.6 危险的预见 2004 (难保证软件的正确性) 1.2 软件的缺陷是什么 1.2.1 软件失败的术

iOS-Runtime知识点整理,ios-runtime知识点

iOS-Runtime知识点整理,ios-runtime知识点 本文目录 1.Runtime简介 2.Runtime相关的头文件 3.技术点和应用场景 3_1.获取属性\成员变量列表 3_2.交换方法实现 3_3.类\对象的关联对象,假属性 3_4.动态添加方法,拦截未实现的方法 3_5.动态创建一个类 4.面试题 -1.Runtime简介 回到顶部 1.Runtime简介 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时.也就是说只有编译器是不够的,还需要一个运

0519知识点整理#2-1

0519知识点整理#2-1 第一章 接口测试及相关工具使用 1.什么是接口 从数据库中获取数据的 前端开发和后端开发用接口(Json)实现交互 Json  一种所有语言都可以解析的数据类型 1.1前端开发和后端开发介绍 前端开发(client)-页面 IOS--object.c Android--Android Web端--html,js 后端开发(server)-逻辑 Python Java PHP GO Ruby 2 接口测试 2.1接口文档 接口测试需要接口文档,文档中需要包括url,请求

华为初级——图片整理

源程序: #include<iostream> #include<string> using namespace std; //const int max=1024; int main() { char s[1024]; char temp; gets(s); int len; len=strlen(s); for(int i=0;i<len;i++) { for(int j=i+1;j<len;j++) { if(s[i]>s[j]) { temp=s[i];s

数据库设计教程系列——相关知识点整理

一.教程概述 此数据库设计教程是笔者参考网上资料.相关书籍,以及加上自己多年做数据库设计相关工作的经验积累写就. 数据库设计教程在网上已经有大量类似的资料,并且该领域有不少专业书籍,珠玉在前,心有戚戚. 但这作为唯心六艺之一,我还是希望能够在整理知识的同时,写出自己的一些内容,如果能够对读者 有所帮助,那就最好不过了,谢谢. 本教程主要基于关系型数据库进行讲解,对于维度数据库也会视情况有所涉猎. 下面是整个教程涉及的知识点整理,在撰写教程的过程中,如果有改动,也会调整更新此图. 二.知识点整理

【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较

[知识点整理]Oracle中NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 系统和会话级别的REDO和UNDO量的查询 ② NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较(重点)   Tips: ① 本文

【Android 面试基础知识点整理】

针对Android面试中常见的一些知识点整理,Max 只是个搬运工,感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章,对于其中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正. 本文将持续更新,同时我也将其放在Github上:Point-of-Android 同时可以看Max的个人博客:海上钢琴师 Android中的异步任务机制 Android中AsyncTak的使用与源码分析 http://blog.csdn.net/bboyfeiyu/article/details/