您的位置:首页 > 编程语言 > C#

C#—拓展方法

2016-04-15 20:40 429 查看
/*
* 拓展方法实例。实例运行后,要求输入成绩。如果输入的成绩大于或者等于0,将显示有效的成绩,否则将显示无效的成绩。
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
public static class MyClass
{
public static bool IsValidZIP(this int score)
{
if (score >= 0)
return true;
return false;
}
}
class Program
{
static void Main(string[] args)
{

Console.WriteLine("请输入成绩:");
int score = Convert.ToInt32(Console.ReadLine());
if (score.IsValidZIP())
Console.WriteLine("有效成绩!");
else
Console.WriteLine("无效成绩!");
Console.ReadKey();
}
}
}


/*
* 拓展方法的使用
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string str = "dfsf";
Console.WriteLine(str.Add()); //调用拓展方法,必须用对象来调用
string s = "this is an apple!";
Console.WriteLine("单词的数量为:{0}", s.GetWordCount());
Console.ReadKey();
}

}
static class Myclass //必须是静态类才可添加拓展方法
{
public static string Add(this string strName) //在字符串后面添加一个a //声明拓展方法必须是静态的
{
return strName + 'a'; //Add的三个参数:this、string表示要拓展的类型、strName表示对象名
}
public static int GetWordCount(this string s) //获取字符串中单词数量
{
int intCount = 0;
string[] strArray = s.Split(' ');
foreach (var str in strArray)
{
if (str.Length > 0)
intCount++;
}
return intCount;
}
}
}

运行结果:



/*
* 拓展方法的使用
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string c = "391423198705451332";
Console.WriteLine("身份证号为:{0}\n该身份证是否合法?{1}",c,c.IsLegal());
Console.ReadKey();
}

}
static class Myclass
{
public static string IsLegal(this string id)
{
Regex rex = new Regex(@"\d{17}[\d|X]|\d{15}");
if (rex.IsMatch(id))
return "是";
return "否";
}

}
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#