C#一些实用的,容易被遗忘的特性,经验和技巧

突然想到,想要通过名字来获得枚举的值,看了不少的资料,发现上面都只是解释枚举的语法而已,对于它的实际应用,一点也不提及,难道只能用switch来判断?不好吧,这样也未免太土了点。后来发现了枚举还有这样的用法,真的很使用,看代码:

Code
namespace EnumTest
{
  enum date { sun, mon, tue, wes, thu, fri, sat }
  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("输入星期的名称:");
      string name = Console.ReadLine();
      //Type参数表示要转换成的枚举的类型,true指示忽略大小写
      object obj = Enum.Parse(typeof(date), name, true);
      Console.WriteLine("输出星期的数字:");
      Console.WriteLine(obj + ":" + (int)obj);
    }
  }
}

再来看一下运行结果图:

怎么样,是不是觉得很实用啊。

接下来要介绍的是委托(delegate),有对delegate不太了解的人可以看一下我以前写的一个随笔什么是委托(delegate) 。我们平时使用委托都是单个的指定委托的方法,但是如果我们需要通过参数动态的指定呢?难道也是用switch?这样做太麻烦了,还有更好的方法,看代码:

Code
namespace DelegateTest
{
  class Person
  {
    public void FirstMethod()
    {
      Console.WriteLine("这是第一个方法!");
    }
    public void SecondMethod()
    {
      Console.WriteLine("这是第二个方法!");
    }
  }

  delegate void dele();
  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("输入方法的名字:");
      string name = Console.ReadLine();
      Person p = new Person();
      //Type参数是要转换的委托的类型,p是要调用的委托的实例,true指示忽略大小写
      dele d = Delegate.CreateDelegate(typeof(dele), p, name + "Method", true) as dele;
      d.Invoke();
      Console.WriteLine("输入方法的名字:");
      name = Console.ReadLine();
      d = Delegate.CreateDelegate(typeof(dele), p, name + "method", true) as dele;
      d.Invoke();
    }
  }
}

下面是运行的结果图:

时间: 2025-01-18 23:35:36

C#一些实用的,容易被遗忘的特性,经验和技巧的相关文章

那些遗忘在角落的SEO技巧:关键词研究篇

大家好,我们在做SEO的时候,重点就是关键词研究,对于这一点,相信很多朋友的已经做的很好了,但是有不少的朋友因为关键词表现不错之后就对其中的一些SEO技巧进行了选择性的忽略,或者因为技巧太多,我们能够在一段时间内运用的或者说自己擅长的也就那么几个,而很多我们知晓却又被遗忘在角落的SEO技巧就是我今天要跟大家谈到的一个知识点. 首先,我们来回顾一下关键词研究的过程中我们要考虑的方向有三个: 1.关键词拓展和选取: 热门关键词(行业词或专业名词类,如SEO) 长尾关键词(地区,品牌,规格,型号,厂家

ES6中非常实用的新特性介绍_javascript技巧

ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设"深入浅出ES6"专栏,来看一下ES6将给我们带来哪些新内容. 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖.ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下. 1. for-of循环 这个东西用来循环数组很爽,原因呢,是因为它弥补了目前

关于ASP生成伪参数技巧 简洁实用的伪(僞)参数_应用技巧

简洁实用的伪(僞)参数前两天在做一个站内版的企搜引擎,发现某些站点可以链接站点内容.. 奇怪之下看了看,原来是按照数据库ID的自动编号规律进行链接的~~ 闲暇之余弄了下面这个东东,希望对大家在以后的编写ASP程序中有所帮助! 复制代码 代码如下: <%  //生成指定位数的随机数字  //也可以用Guidy写的iXuEr_Rnd_Str函数,自带15种样式,可以伪MD5啦!!  Function rndStr(strLong)  Dim tempStr  Randomize  Do While 

个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节_javascript技巧

变量转换 var myVar = "3.14159", str = ""+ myVar,// to string int = ~~myVar, // to integer float = 1*myVar, // to float bool = !!myVar, /* to boolean - any string with length and any number except 0 are true */ array = [myVar]; // to array

JS实用的动画弹出层效果实例_javascript技巧

本文实例讲述了JS实用的动画弹出层效果的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

浅谈js中几种实用的跨域方法原理详解_javascript技巧

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对http://store.company.com/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同

几个实用的PHP内置函数使用指南_php技巧

PHP有许多内置函数,其中大多数函数都被程序员广泛使用.但也有一些函数隐藏在角落,本文将向大家介绍7个鲜为人知,但用处非常大的函数. 没用过的程序员不妨过来看看. 1.highlight_string() 当需要在一个网站中展示PHP代码时,highlight_string()函数就变的非常有用了.该函数通过使用PHP语法高亮程序中定义的颜色,输出或返回给定的PHP代码的语法高亮版本. 示例: 复制代码 代码如下: <?php highlight_string('<?php phpinfo()

实用PHP会员权限控制实现原理分析_php技巧

我的通用权限系统设计是更换权限时候尽量不要涉及到代码修改,来自chinaunix论坛,今天转过来看看.希望对大家有所帮助,对PHP100的朋友有个很高的提升. 复制代码 代码如下: /* *控制访问表 * acl值 功能 * 1 需要登录 * 2 自身修改 * 4 需要组的权限集合 * 8 需要身份访问集合 * 16 身份被禁止访问 * 32 可访问的日期 * 64 可访问的周日 * 128 可访问的时间 * 256 输入密码才能访问 * 512 超级管理使用 */ class aclACL e

超级实用的7个PHP代码片段分享_php技巧

1.超级简单的页面缓存 如果你的工程项目不是基于 CMS 系统或框架,打造一个简单的缓存系统将会非常实在.下面的代码很简单,但是对小网站而言能切切实实解决问题. 复制代码 代码如下: <?php // define the path and name of cached file $cachefile = 'cached-files/'.date('M-d-Y').'.php'; // define how long we want to keep the file in seconds. I