C#探秘系列(二)——IsXXX 系列方法
不知道有人做没做过对日外包,如果做过的话,那么对vb.net应该非常熟悉了,当年我刚毕业的时候也做过四个月的外包,那种日子简直不是人过的,就连大楼下面买珠宝的阿姨都说,这些孩子,只看过他们上班,就没见过他们下班,不过有一点好,有个QA的小姑娘天天下午6点教我们倭瓜语,现在还在勾搭中。。。
好了,现在我们看看需求。
一: 如何判断“a”是不是数字类型。
①:在C#中我们可能会用TryParse来判断当前的”a“是否为整数。
static void Main(string[] args)
{
var a = "a";
int r;
Console.WriteLine(int.TryParse(a, out r));
Console.Read();
}
这个tryparse,我想大家都很熟悉,不过最讨厌的地方就是,我就是仅仅为了知道“a”是不是整数即可,还非要定义一个r变量,讨厌不讨厌。
② 使用正则
万能的正则,没有它解决不了的问题,不过为了它,我还要写“表达式”,还是有点小麻烦呢,不喜欢,我还要更简单一点的方法。
var a = "a";
Console.WriteLine(Regex.IsMatch(a, "^\\d$"));
Console.Read();
③:如果你知道vb.net的话,那你肯定会知道vb中是有一个IsNumeric方法的。
Sub Main()
Dim a As String = "a"
Console.WriteLine(IsNumeric(a))
Console.Read()
End Sub
当你看到这个方法的时候是不是很爽,下面我们继续挖下是哪个命名空间就行了。知道了命名空间,那我们C#是不是可以运用拿来主义呢?
好了,现在已经把ta扒光了,不过在Microsoft.VisualBasic空间下,我们还看到了7个貌似非常有用的isXXX,太好了~~~
下面我们添加下引用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var a = "a";
Console.WriteLine(Information.IsNumeric(a));
Console.Read();
}
}
}
这些IsXXX方法都是非常见名识义的,我也不需要再code解释了,下面大家有兴趣可以自己动手尝试下,这些方法都是非常非常有用的,没有做不到,只有想不到~ 比如IsDate方法,如果在C#中判断一个字符串是否为时间是比较麻烦的,要么tryparse,要么正则,总的来看,VS是个大平台,当C#不好实现的时候,可以想想是否可以引用下其他语言下面的方法,或许你有大收获~
相关推荐
-
C#探秘系列(一)——ToDictionary,ToLookup
这个系列我们看看C#中有哪些我们知道,但是又不知道怎么用,又或者懒得去了解的东西,比如这篇我们要介绍的toDictionary和ToLookup. 从图中我们看到有四个ToXXX的方法,其中ToArray和ToList,我想大家用的是非常非常多,但是ToDictionary和ToLookup不见得有多少人用了,但不能否认的是这些方法确实很有用. 不多废话了,直接如主题,我们有这样的一个实体,包含:票号,订单号,备注. 复制代码 代码如下: class Ticket { ///
-
C#探秘系列(四)——GetHashCode,ExpandoObject
这篇继续分享下GetHashCode和ExpandoObject这两个比较好玩的方法. 一:GetHashCode 从MSDN上可以看到的解释是:用作特定类型的哈希函数,也就是说任何对象的实例都会有一个int32类型的HashCode,并且存放在FCL中的HashCollection中,废话不说,看个例子: 从图中可以看到,两个类实例的hashcode不同,说明二者不是同一个引用,也就有了不同的hashcode,利用这个特性,我们是不是可以生成一些随机数字呢? 1:在for循环中用random生
-
C#探秘系列(三)——StackTrace,Trim
一: Environment.StackTrace 可能我们看到最多的就是catch中的e参数,里面会有一个StackTrace,然后不可否认的这玩意太有用了,它会把调用堆栈中的信息输出出来,有了它,我们就可以快速的知道运行代码的执行流并且快速的定位到问题. 有时候我们会遇到这样两个问题: ①:线上的bug在本地不能重现. ②:由于太多的多态,设计模式,程序员反而对线上的代码执行流向会搞的稀里糊涂的. 为了搞清楚并解决这两个问题,我们看生产日志的时候很在乎代码的执行流以及想获取当前上下文的可疑变
-
C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(上)
ExpandoObject:表示一个对象,该对象包含可在运行时动态添加和移除的成员. 复制代码 代码如下: dynamic dynEO = new ExpandoObject();dynEO.number = 10;dynEO.Increment = new Action(() => { dynEO.number++; }); Console.WriteLine(dynEO.number);dynEO.Increment();Console.WriteLine(dynEO.number); dy
-
C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(下)
接上文:C# Dynamic关键字之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(上) 为什么TryXXX方法没有被调用?? 将DynamicProduct 中的name修饰符改为private: private string name; 可以在TrySetMember方法中设置断点,再次运行: 为什么访问修饰符是Public不调用TrySetMember,是Private 就调用了呢?? 难道是因为private抛出了异常吗?? 再次看看Msdn对
-
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的.Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品. Bootstrap 包的内容 基本结构:Bootstrap 提供了一个带有网格系统.链接样式.背景的基本结构.这将在 Bootst
-
Android开发系列二之窗口Activity的生命周期
在上篇文章给大家介绍了android开发系列一之用按钮实现显示时间,感兴趣的朋友可以点击阅读详情. 在Activity从创建到销毁的过程中需要在不同的阶段调用7个生命周期的方法这7个生命周期方法定义如下: protected void onCreate(Bundle savedInstanceState) protected void onStart() protected void onResume() protected void onPause() protected void onSto
-
JavaScript基础系列之函数和方法详解
目录 一.函数和方法的区别 二.如何写好一个函数 2.1 命名准确 2.1.1 函数命名 2.1.2 参数命名 2.2 函数注释 2.2.1 参数注释 2.3 函数参数 2.3.1 参数默认值 2.3.2 对象参数 2.3.3 参数数量 2.3.4 参数类型防御 2.4 函数的返回 2.4.1 幂等函数 2.4.2 纯函数 2.4.3 return null 函数和方法的区别 总结 一.函数和方法的区别 函数(function):函数是带有名称和参数的 JavaScript 代码段,可以一次定
-
Python输入二维数组方法
前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘.这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for i in range(n): line[i]=input().split(' ') print(line) 使用数据转换为int即可! 以上这篇Python输入二维数组方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 一些Python中的二维数组的操作方法 python中字
-
Python3批量生成带logo的二维码方法
最近有个需求:批量生成带Logo的二维码 生成二维码比较简单,网上的资源也比较多,不赘述了.自己研究了一下加了logo并且美化了一下(网上的资源直接加Logo特别丑!!!忍不了!!!),直接上代码: def create_qrcode(url, filename): qr = qrcode.QRCode( version=1, #设置容错率为最高 error_correction=qrcode.ERROR_CORRECT_H, box_size=10, border=4, ) qr.add_da
-
python的schedule定时任务模块二次封装方法
通过定时来执行任务,我们日常工作生活中会经常用到.python有schedule这个库,简单好用,比如,可以每秒,每分,每小时,每天,每天的某个时间点,间隔天数的某个时间点定时执行,另外自己又写了一个可以自定义时间点来定时执行任务,代码如下. import schedule import time class Timing(): #按秒循环定时执行任务 def doEverySecond(self,seconds,job_func): try: schedule.every(seconds).s
-
Python使用qrcode二维码库生成二维码方法详解
安装qrcode库 pip install qrcode 声明 import qrcode 使用qrcode QRCode 方法 qrcode.QRCode( version=1, error_correction=qrcode.ERROR_CORRECT_L, box_size=10, border=4, image_factory=None, mask_pattern=None ) 参数解释: version:控制二维码的大小,取值范围从1到40.取最小值1时,二维码大小为21*21.取值为
-
C#探秘系列(二)——IsXXX 系列方法
不知道有人做没做过对日外包,如果做过的话,那么对vb.net应该非常熟悉了,当年我刚毕业的时候也做过四个月的外包,那种日子简直不是人过的,就连大楼下面买珠宝的阿姨都说,这些孩子,只看过他们上班,就没见过他们下班,不过有一点好,有个QA的小姑娘天天下午6点教我们倭瓜语,现在还在勾搭中... 好了,现在我们看看需求. 一: 如何判断"a"是不是数字类型. ①:在C#中我们可能会用TryParse来判断当前的"a"是否为整数. 复制代码 代码如下: static v
-
Knockoutjs 学习系列(二)花式捆绑
在上一篇Knockoutjs 学习系列(一)ko初体验文章中提到,ko中的 data-bind = "XX:OO"绑定大法除了可以绑定text.value等内容,还可以绑定visible.style等外观属性,也可以绑定click.textInput等各种事件,甚至还能控制程序流程.各种花式捆绑,绝对满足你的幻想. 下面简单讲讲各种绑定的使用,主要根据被绑定的属性分成表现类.流程类和交互类三种. 表现类属性 表现类的绑定属性有visible.text.html.css.style.at
-
非常有用的40款jQuery 插件推荐(系列二)
今天开始将发布系列文章向大家分享40款非常有用的 jQuery 插件. HTML5 File Uploads with jQuery ( 演示 | 下载 ) 这是一款用于帮助你实现 HTML5 文件拖放上传功能的 jQuery 插件. Shuffle Letters Effect: a jQuery Plugin ( 演示 | 下载 ) 这款插件能够帮助实现非常酷的文字显示效果,可用于标题.LOGO和幻灯片. Skitter ( 演示 | 下载 ) Skitter 是一款非常精美的幻灯片插件,可
随机推荐
- 使用vbs获得外网ip并发送到邮箱里
- 网页编辑器ckeditor和ckfinder配置步骤分享
- 批处理(ftp)上传文件到服务器的代码
- iOS应用开发中SQLite的初步配置指南
- Java中的值传递和引用传递实例介绍
- Java编程中的检查型异常与非检查型异常分析
- Linux系统下导出ORACLE数据库出现Exporting questionable statistics.错误 处理
- Oracle 获取上周一到周末日期的查询sql语句
- Javascript闭包(Closure)详解
- js时间日期和毫秒的相互转换
- Javascript单元测试框架QUnitjs详细介绍
- Ajax 无刷新在注册用户名时判断是否为空是否被使用
- 为什么Java中继承多数是有害的
- MySQL优化之缓存优化(续)
- 动态提示的下拉框
- C#文件断点续传实现方法
- c#数据绑定之删除datatable数据示例
- Django中login_required装饰器的深入介绍
- Lua中的变量与赋值方法
- 解决python字典对值(值为列表)赋值出现重复的问题