VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#制作号码mask程序

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  在今天,各大媒体都时兴通过短信参与活动并中奖的行为,中奖号码大多用‘*’好掩盖其手机号码的中间几位如:138*****345,今天,我们做的就是用一个类库来实现这个通用功能,以便在网站和程序中引用。

  正文:下面,我们就开始吧,首先,用vs2005建立一个c#类库,我们命名为NumMask,把他的Class1改名为容易记忆的其他名字,我改称Masker,然后我们添加如下代码:

  NumMask

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Collections;
namespaceNumMask
{
  publicclassMasker
  {
    ArrayListnumbers=newArrayList();//定义一个ArrayList变量,用于收集从主程序传递来的号码
    ArrayListnewnum=newArrayList();//这是一个返回处理结果的Arraylist
    publicArrayListNumberChange(ArrayListnumber)
    {
      foreach(stringnuminnumber)
      {
        numbers.Add(num);//把接收到的号码放入numbers中
      }
      foreach(stringninnumbers)//进行处理
      {
        char[]temp=n.ToCharArray();
        for(inti=3;i<=7;i++)//把号码的3到7位用*号代替,这里应该有更好的方法,我的比较笨,希望大家可以给我建议
        {
          temp[i]='*';
        }
        strings=newstring(temp);
        newnum.Add(s);//把Mask后的号码放入结果数组等待返回
      }
      returnnewnum;
    }
  }
}

  然后生成它,得到NumMask.dll文件

  再建立一个winform项目,添加刚才的NumMask.dll为引用。winform界面如下:

  c#制作的号码mask程序

  我们没有使用数据库作为号码来源,而是使用了简单的定义好的号码,在实际中可以把数据库中的号码字段读取到一个ArrayList中,然后调用NumMask来处理。

  ListBox1用于显示处理结果,我们看看“开始转换”按钮的代码:记得在开头添加using NumMask;

  button1

privatevoidbutton1_Click(objectsender,EventArgse)
    {
      ArrayListal=newArrayList();//定义al为原始的号码数组
      ArrayListab=newArrayList();//定义ab为处理后的结果
      al.Add("13888567890");//向原始号码中添加号码
      al.Add("15878990987");
      NumMask.Maskermk=newMasker();//实例化一个Masker
      ab=mk.NumberChange(al);//向其中传入原始数据al,用ab接收结果
      foreach(stringnumsinab)
      {
        listBox1.Items.Add(nums);//输出结果
      }
    }

  编译运行以下,可以看到如下图的效果:

  c#制作的号码mask程序

  小结:这个类库还有很多地方值得改造,比如判断数据的有效性等等,请大家多多给出意见和建议,帮助我更好的学习和进步。



相关教程