.net通过控制台演示一个简单的拓展方法

1.拓展方法是一种特殊的静态方法

2.拓展方法必须在静态类中定义

3.拓展方法的优先级必须低于同名的类方法

4.拓展方法只能在特定的命名空间有效

5.除非必要不要滥用扩展方法

namespace ConsoleApplication1
{
    class Program
     {
       static void Main(string[] args)
       {

//扩展方法
          string s = "asdasdas";
          Console.WriteLine(s.ToPascal());
          Console.WriteLine(s.ToPascal(4));
         }
    }

// 拓展类,必须为静态
   public static class ExterMethod
   {  
       //拓展方法,必须静态
      public static string ToPascal(this string s)//this后带类型,表明为该类型添加扩展方法ToPascal,
       {
         return s.Substring(0, 1).ToUpper() + s.Substring(1).ToLower();
       }
      public static string ToPascal(this string s,int len)
      {
        return s.Substring(0, 1).ToUpper() + s.Substring(1,len).ToLower();
      }
    }
}

时间: 2024-11-03 22:00:53

.net通过控制台演示一个简单的拓展方法的相关文章

Java实现一个简单的缓存方法

缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率.下面我实现了一个简单的缓存,步骤如下. 创建缓存对象EntityCache.java public class EntityCache {   /**    * 保存的数据    */   private Object datas;   /**    * 设置数据失效时间,为0表示永不失效    */   private long time

演示一个简单的Redis队列

0.Windows Service版下载 https://github.com/rgl/redis/downloads 1.新建一个Console项目 打开Nuget控制台,执行以下命令 Install-Package ServiceStack.Common -Version 3.9.71 Install-Package ServiceStack.Redis -Version 3.9.71 2.在Main中输入测试数据 using (var redis = new RedisClient(cac

用python演示一个简单的AST(抽象语法树)

假设对'a + 3 * b'进行解释,其中a=2,b=5 代码很简单,就不再进行详细的解释了. Num = lambda env, n: n Var = lambda env, x: env[x] Add = lambda env, a, b:_eval(env, a) + _eval(env, b) Mul = lambda env, a, b:_eval(env, a) * _eval(env, b) _eval = lambda env, expr:expr[0](env, *expr[1

控制台输入一个简单表达式(+-*/)计算结果

1, import java.util.Scanner /** * Author: bruce * Date: 2015-01-24 */ object ConsoleScanner { def main(args: Array[String]) { println("Please enter a phase: "); val scan = new Scanner(System.in); val phase = scan.next() algo(phase, "+"

一个简单的日志方法

FILE *g_fileLog = NULL; void LogInit() { CString sLogPath = GetModulePath(); sLogPath += L"\\log.txt"; // 事实证明,这里一写要有t,ccs=UTF-8才能正确写出wchar_t g_fileLog = _tfopen(sLogPath, L"at,ccs=UTF-8"); } bool WriteLog(LPCTSTR format, ...) { time_t

怎么把mp4转换成gif格式?教你一个简单的解决方法

怎么把mp4转换成gif格式当我们有关于mp4格式的文档怎么转换成gif格式的呢?下面小编就简单给大家介绍一下. 辅助工具:迅捷PDF在线转换器 步骤一:我们可以将需要转换的mp4格式的文件进行保存到桌面上: 步骤二:然后通过在浏览器上的搜索进入到迅捷PDF在线转换器在线网站中,在导航栏中我们找到音视频转换中的mp4转gif,然后进入即可:步骤三:然后进行文件的参数的设置,将mp4转换的视频格式参数进行修改好:步骤四:然后将视频文件选到界面中去,选择直接拖动视频文件或是点击文件进行上传即可:步骤

SD卡/U盘分区坏了怎么办?告诉大家一个简单的恢复方法

前言: 以前工作的过程中经常会借U盘给开发同学使用,结果等到还回来后,发现U盘的可用的空间变得很小了,可是插到电脑上发现明明磁盘里也没文件呀,格式化后发现还是不管用,百思不得其解~~ 上网研究了老半天才解决了,现在就将之前U盘损坏的恢复方法总结如下,供参考,哈哈哈~~ [以下以SD卡恢复为例,U盘恢复方法类似] 方法/步骤: 1.卸载SD卡分区 在使用fdisk命令前,请使用如下命令卸载boot分区和rootfs分区: Host# umount /media/boot Host# umount

代码片--实现一个简单的模版方法设计模式(获取一段程序运行的时间)

package com.dreamy.day03; /** * @author dreamy * 需求:获取一段程序运行的时间 * 原理:获取程序开始和结束的时间并相减即可. * 获取时间:System.currentTimeMillis() * * * 当代码完成优化后,就可以解决这类问题 * 这种方式叫做模版方法设计模式. * * 什么是模版方法呢? * 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用的不确定的部分, * 那么这时就将不确定的部分暴露出去,由该

【SSH进阶之路】一步步重构MVC实现Struts框架——从一个简单MVC开始(三)

目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳转路径(四) [SSH进阶之路]一步步重构MVC实现Struts框架--彻底去掉逻辑判断(五) [SSH进阶之路]一步步重构MVC实现Struts框架--完善转向页面,大功告成(六) 上篇[SSH进阶之路]Struts基本原理 + 实现简单登录(二),我们介绍MVC和