C#的GetInvocationList()有什么用?~
GetInvocationList()只是一个方法而已,不清楚你说的哪一个,
不过,在委托中是有一个这样的方法,委托对象通过调用这个方法获取所有注册在这个委托中的方法(按照调用顺序返回此多路广播委托的调用列表)
如:
public void Method1(..)
{
}
public void Method2(...)
{
}
EventHandler handler = new EventHandler(Method1);
handler += new Eventhandler(Method2);
Delegate[] delg = handler.GetInvocationList();
foreach(Delegate dd in delg)
{
dd(...);//将所有方法依次执行一次
}
类似指针取值,转移字符
在登录到系统,验证用户输入的用户名密码的时候经常会用到。防止字符串拼接对数据库实施注入攻击。这是比较安全的办法。
比如if(select u_name=@uname...)等等。
还有一个作用是用来表示完全转义字符串。
比如如果想在屏幕上输出(client)"
",我们应该是写"\\
"用来转义,用@就是 str1 = @"
";输出str1就直接是转以后的字符。
C#(C Sharp)是微软(Microsoft)为。NET Framework量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。 简介 C sharp(音标 [∫a:p] )(又被简称为"C#")是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。 在本文中,我将考察创建一种新计算机语言的一般动机,并将特别指明是什么原因导致了C#的出现,然后我将介绍C#和它与Java、C、C++的相似之处。其次我将讨论一些存在于Java和C#之间的高层次的、和基础的差别。我将以衡量在用多种语言开发大型应用程序的时候所需的知识(或者对这种知识的缺乏程度)来结束本文,而这正是.NET和C#的一个主要战略。目前,C#和.NET还只能以C#语言规则,以及Windows 2000的一个"d预览版本",还有MSDN上迅速增多的文档集子的形式获得(还没有最终定型)。 编辑本段定义 微软C#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点。C#在设计者从C++继承的可选选项方面比JAVA要广泛一些(比如说struts),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,目前不可能挤垮JAVA。C#还需要进化成一种开发者能够接受和采用的语言。而微软当前为它的这种新语言大造声势也是值得注意的。目前大家的反应是:“这是对JAVA的反击”。 C#更像JAVA一些,虽然微软在这个问题上保持沉默。这也是意料中的事情,因为JAVA近来很成功而使用JAVA的公司都报告说它们在生产效率上比C++获得了提高。 JAVA所带来的巨大影响和大家对它的广泛接受已经由工作于这种语言和平台之上的程序员数量明显的说明了(估计世界范围内共有两百五十万程序员使用JAVA)。由这种语言写成的应用程序的数量是令人惊讶的并已经渗透了每一个级别的计算,包括无线计算和移动电话(比如日本发明的JAVA电话)。C#能够在用户领域获得这样的礼遇吗?我们必须等待并观望,就象已经由SSI公司的CEO和主席KALPATHI S. SURESH指出来的那样:"我发现所有这些都是渐进的。如果C#不存在,我们总能回到JAVA或C和C++。这些都不完全是新技术,它们在更大的意义上来说只是大公司制造的市场噱头。我们必须给他们时间安顿下来看看这些是不是真的对IT工业有什么影响。" C# (C SHARP)是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。 正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。 最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。 编辑本段从Java继承而来的特点结构形式 类:在C#中类的声明与Java很相似,这是合理的,因为经验告诉我们Java模型工作得很好。Java的关键字import已经被替换成using,它起到了同样的作用。一个类开始执行的起点是静态Main()方法下面的Hello World程序展示了程序基本结构形式: using System; class Hello { static void Main() { Console.WriteLine("Hello,world"); Console.ReadLine(); } } 在这个例子中,System这个名字指向一个包括了基本C#实用类集合的命名空间(namespace),这个命名空间包括了Console类,它在这个例子中被用来输出一个字符串。类可以是抽象的和不可继承的:一个被申明成abstract的类不能被实例化,它只能被用做一个基类,C#关键字lock就象Java关键字final,它申明一个类不是抽象的,但是它也不能被用做另一个类的基类界面:就象在Java中一样,一个界面是一组方法集合的抽象定义。当一个类或结构体实现一个界面的时候,它必须实现这个界面中定义的所有方法。一个单一的类可以实现几个界面,也许以后会出现一些微妙的差别,但是这个特点看起来与Java相比没有变化。布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型,从布尔类型到其他类型没有直接的转换过程,布尔常量true和false是C#中的关键字。错误处理:如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程。内存管理:由底层.NET框架进行自动内存垃圾回收。一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。 强类型 C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,例如int可以转换成long、float、double、decimal,反之必须显式的转换。 例: int a=7; float b=a; //隐式转换 long c= 12L ; //和C++一样必须加上后缀L才能定义为long型不然就为int型了 a=(int)c; //显式转换 使用上面的显示转换不能用在bool和string类型上。 编辑本段C#从C和C++继承的特点编译: 程序直接编译成标准的二进制可执行形式.如果前面的Hello World程序被保存成一个文本文件并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序。 结构体: 一个C#的结构体与C++的结构体是相似的,因为它能够包含数据声明和方法.但是,不象C++,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现接口(interface)。 预编译: C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制.可用的预编译指令有: #define #undef #if #elif #else #endif #warning #error #line [] 没有了#include 伪指令.你无法再用#define 语句对符号赋值,所以就不存在源代码替换的概念--这些符号只能用在#if和#elif伪指令里.在#line伪指令里的数字(和可选的名字)能够修改行号还有#warning和#error输出结果的文件名。 命名空间 命名空间提供了一种方法来唯一标识一个类型以及进行类型的逻辑组织。命名空间可以嵌套使用并可以跨程序集使用。一个类型的完全限定名包括所有命名空间。在一个命名空间中,所有的类型必须有一个唯一的名称。基本类型库(Base Class Library)是.NET Framework的所有语言可下可用的命名空间集。命名空间是组织和重用代码的编译单元。命名空间和文件的结构关系不像Java,命名空间与文件的结构之间没有关系。using语句是用来在使用类型时不需要用全限定名的类型,全限定名也可以被使用。命名空间中的声明,C#与C++有所不同,是C#独有的特点。 编辑本段操作符重载: 一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载.能够被重载的单目操作符是: + - ! ~ ++ -- true false 能够被重载的二元运算符是: + - * / % & | ^ << >> == != > < >= <= 编辑本段C#独有的特点 C#最引人入胜的地方是它和Java的不同,而不是相似的地方.这一节(和这个系列第二部分的大部分地方)讲述了C#实现的和Java不同的地方或者Java根本没有的特点. 动态查阅 C# 4.0 新增 dynamic关键字,提供动态编程(dynamic programming),把既有的静态对象标记为动态对象,类似javascript,Python或 Ruby。 dynamic calc = GetCalculator(); int sum = calc.Add(10,20); 具名参数与可选参数 public StreamReader OpenFile( string path, int bufferSize =1024) { ... } 调用 OpenFile 时,顺序可以完全颠倒: OpenFile(bufferSize:4096,path:"foo.txt"); 中间代码: 微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地.微软公司很小心的声称MSIL不是解释性的,而是被编译成了机器码.它也明白许多--如果不是大多数的话--程序员认为Java程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++"--C++的一个符合CLS的版本--等语言编写的程序)将在性能上超过"解释性的"Java代码.当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布.但是Java JIT编译器的普遍存在使得Java和C#在性能上相对相同.象"C#是编译语言而Java是解释性的,"之类的声明只是商业技巧.Java的中间代码和MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码. 命名空间中的申明: 当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体.必须使用using关键字来引用其他命名空间的内容。 基本的数据类型 C#拥有比C/C++或者Java更广泛的数据类型.这些类型是bool,byte,ubyte,short,ushort,int,uint,long,ulong,float,double,和decimal.像Java一样,所有这些类型都有一个固定的大小.又像C和C++一样,每个数据类型都有有符号和无符号两种类型.与Java相同的是,一个字符变量包含的是一个16位的Unicode字符.C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10进制数字. 两个基本类: 一个名叫object的类是所有其他类的基类.而一个名叫string的类也象object一样是这个语言的一部分.作为语言的一部分存在意味着编译器有可能使用它--无论何时你在程序中写入一句带引号的字符串,编译器会创建一个string对象来保存它. 参数传递: 方法可以被声明接受可变数目的参数.缺省的参数传递方法是对基本数据类型进行值传递.ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值.out关键字也能声明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值. 与COM的集成: C#对Windows程序最大的卖点可能就是它与COM的无缝集成了,COM就是微软的Win32组件技术.实际上,最终有可能在任何.NET语言里编写COM客户和服务器端.C#编写的类可以子类化一个已存在的COM组件;生成的类也能被作为一个COM组件使用,然后又能使用,比方说,JScript语言子类化它从而得到第三个COM组件.这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用任何.NET语言子类化. 索引下标: 一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样)以外是相似的. public class ListBox: Control { private string[] items; public string this[int index] { get { return items[index]; } set { items[index] = value; Repaint(); } } } 可以用一个循环器来匿名引用字符串内部数组成员,就象下面这样: ListBox listBox = ...; listBox[0] = "hello"; Console.WriteLine(listBox[0]); 代理和反馈: 一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方法指针就行了.代理对象可以被移动到另一个地方,然后可以通过访问它来对已存在的方法进行类型安全的调用.一个反馈方法是代理的特例.event关键字用在将在事件发生的时候被当成代理调用的方法声明中. http://baike.baidu.com/view/6590.htm来自百度百科,希望对你有用
C#可以开发桌面程序,如:360安全卫士等;也可以做web开发,如:京东商城等;还可以做手机开发,做手机开发只能做windowsphone手机上的开发。
就是一个计算机编程语言 至于 怎么用完全在你 不在它 你能把它用到什么地方 能用到什么程度 能给你带来什么 完全取决你自己 用处 因为c#是语言 很多平台都用到 比如 .net asp. net wpf wcf silverlight 等等 都会用到
服务器脚本语言。 跟C \C++ 一样
看你想干什么了,分ASP.NET、WPF、WINFORM、Sliverlight都比较火
华坪县18740401506:
通过C#可以做一些什么东西 - ?
荣急复方: 这个问题还有点个性哦.首先C#作为一门高级语言,里面包含的许多类库,c#是java和c++的结合,包括了两个的优点.至于他能干些什么,行业上最流行的可能就是B/S和C/S应用程序了.他开发速度相对能快一点,因为有很多类库可以直接拿来用.包括C/S开发时,他提供了尽可能有的空间,很方便.还有楼上所说的 对日常的简单应用 我很纳闷.真的只是简单吗?
华坪县18740401506:
c#语言的用处在哪?实用性如何? - ?
荣急复方: 不管哪一种语言都有前途,包括古老的语言, C#的优势就在开发快,因为它几乎不需要考虑内存管理,还有优秀的代码特性 C++的内存需要自行管理,一不小心就陷入内存泄露之类的问题;学习C#可以参考李天生的C# 2015视频教程而且C++开发周期相对慢 另外,现在C#很大一部分都是用于开发网站,就是Asp.net, 用什么语言,看各个公司的评估需要,C#之所以流行还有一个原因就是上手快,微软提供了庞大的类库和优秀的开发工具VisualStudio...
华坪县18740401506:
c#的作用 - ?
荣急复方: 网页和软件都行,但是我个人认为还是用他做网页好.用它开发的软件存在一个很大的弊端:执行速度(或者叫刷新速度).用C#开发的软件主要用于那些要求实时性不高的地方.比如说图书馆等的管理系统.前段时间我写的程序要用到照片...
华坪县18740401506:
c#语言的用处在哪?实用性好吗??
荣急复方: 不管哪一种语言都有前途,包括很多古老的语言, C#的优势就在开发速度快,因为它几乎不需要考虑内存管理,还有很多优秀的代码特性 C++的内存需要自行管理,一不小心就陷入内存泄露之类的问题;学习C#可以参考李天生老师的《C# 2015视频教程》而且C++开发周期相对慢 另外,现在C#很大一部分都是用于开发网站,就是Asp.net, 用什么语言,主要看各个公司的项目评估需要,C#之所以流行还有一个原因就是上手快,微软提供了庞大的类库和优秀的开发工具VisualStudio...
华坪县18740401506:
C#主要的用途是什么,倾向于哪方面~! - ?
荣急复方: C# 可以应用于以下三个领域:1,Windows窗体应用程序,C#目前在该领域并没有很大优势,主要是效率不如VC++、Delphi等开发的程序(较少,桌面开发领域主要被VB、VC++ 、Delphi等占领)2,Web应用程序,即企业级应用程序开发,如中国移动的网上业务平台一部分就是用该技术开发的(很多)3,移动设备应用程序,即嵌入式开发领域.但是主要面向WindowsCE等微软的产品,(较少) 所以C#主要还是倾向于Web开发领域,这也是整个软件开发行业未来的发展趋势. 最后要告诉你的是,大名鼎鼎的飞信PC客户端就是用C#开发的,当然,飞信PC客户端属于桌面应用程序.
华坪县18740401506:
C#在现实中有多大用处? - ?
荣急复方: C# 无疑是这个星球上有史以来最好的编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果.面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……你不可能在另外的一种语言中找到...
华坪县18740401506:
我用C#干什么? - ?
荣急复方: C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言.它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承).C#综合了VB简单的可视化操作和C++的高运行效...
华坪县18740401506:
c#有什么用??
荣急复方: 编写程序,可以在安装了.net环境的系统里运行.学了它,如果有公司招聘C#程序员,你就可以去尝试应聘.
华坪县18740401506:
c#有什么用 - ?
荣急复方: 1,C#是一种编程语言,可以用来编写程序 2,如果你说的是工具的话,Visual Studio 2010都出来了
华坪县18740401506:
学习C#有什么用??
荣急复方: C#是微软件倾力打造的一种语言,用来在网络时代与Java抗衡,我学过一段时间C#感觉这种语言比较容易上手,而且微软的帮助文档做的也比较好,学习起来比较容易,.net Framwork本来就与VCL Framwork的架构思想比较相,都是尽量的向组件靠拢,但是也有不同,.net Framwork只是做这些做成一个个的类,也很方便调用!C#的功能很强大,可以开发图形图像类的软件,数据库类的,移动设备上的,Web等.但是C# 不像Java那样移植性好. Java也是一种不错的语言,在很多地方都用的上,而且现在也很热门,在网站开发,移动设备之类软件的开发,用的很多,Java也是一种移植性很好的语言,相对于C#来说学习起来比较困难!