Skip to content

A Nuget package used to determine whether a number is equal to 13

License

Notifications You must be signed in to change notification settings

ArabidopsisDev/IsThirteen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IsThirteen

简介

本项目为为一个Nuget包,灵感来源于npm包is-thirteen, 也可以看作该项目在.Net平台上的移植版本。
用于判断一个数字是否等于13

动词规范:所有API中,简介以“计算”或“将”开头的方法均不能作为链式编程最后一个方法,因为它不会返回一个布尔值。因为作者不希望自己的方法被他人直接使用,所以它将返回一个逻辑混乱的数字。其余方法均可以作为链中的最后一个方法。

入门

使用本项目为intdouble类型扩展的IsThirteen方法,可以直接判断该数字是否等于13,例如:

int num = 13;
Console.WriteLine(num.IsThirteen());
double data = 12.8;
Console.WriteLine(data.IsThirteen());

控制台打印结果:

True
False

算术运算

作为一个功能完整的包,该项目也为intdouble类型提供了算术运算的扩展方法,可以对数字进行链式算术运算之后判断其是否等于13

支持的几种算术运算如下表所示:

方法调用 简介
x.Plus(y) 计算x+y的值
x.Minus(y) 计算x-y的值
x.Multiply(y) 计算xy的值
x.DivideBy(y) 计算x/y的值
x.Pow(y) 计算x^y的值

通过链式算术运算之后判断其是否等于13,例如:

int num = 4;
Console.WriteLine(num.Pow(2).IsThirteen());
double data = 12.8;
Console.WriteLine(data.Plus(0.2).IsThirteen());

控制台打印结果:

False
True

逻辑运算

有时候我们希望对多个运算结果进行整合,因此添加了对于bool类型的几个扩展方法,如下:

方法调用 简介
x.And(y) 返回x&&y的值
x.Or(y) 返回`x
x.Not() 返回!x的值

接下来我们就可以将它们与另外的API进行组合了。注意:动词规范中已经提醒了你,所有API中,简介以“判断”开头的方法均返回一个bool值。

因此我们可以对这些结果进行组合,比如:

const double test = -1;

Console.WriteLine(test.Minus(12).IsThirteen().And(
    test.Plus(14).IsThirteen()));
Console.WriteLine(test.Minus(12).IsThirteen().Or(
    test.Plus(14).IsThirteen()));

控制台打印结果:

False
True

范围判断

当然,事情总不是过于严苛。我们也提供了一系列方法,用于判断某些数字是否在13的某些范围内。

支持的几种范围运算如下表所示:

方法调用 简介
x.Up() x向上取整
x.Down() x向下取整
x.Rough() 判断x是否近似等于13
x.Within(y) 判断x是否在[13-y,13+y]
x.Without(y) 判断x是否不在[13-y,13+y]
x.HaveThirteen() 判断x是否含有字符串13

以下是一个简单的示例:

const double test = -1;

Console.WriteLine(test.Multiply(-1).Plus(11.7).
    Rough().IsThirteen());
Console.WriteLine(test.Plus(1).Within(15));

控制台打印结果:

True
True

自动化

我们判断一个数是否等于13总会有其特定的意义。例如据此做一些特定操作,自动化函数组接受一到两个Action委托,用于在指定条件满足时进行操作,如下:(其中xintdouble

方法调用 简介
x.DoIfThirteen(action) 执行action如果x=13
x.DoIfHaveThirteen(action) 执行action如果x含有字符串13

在不满足时也可以做另一些事情:(其中xintdouble

方法调用 简介
x.DoIfThirteenOrNot(actionT,actionF) 执行actionT如果x=13,否则执行actionF
x.DoIfHaveThirteenOrNot(actionT,actionF) 执行actionT如果x含有字符串13,否则执行actionF

当然,为了增强灵活性,我们也为bool添加了相应的方法:(其中xbool

方法调用 简介
x.DoTrue(action) 执行action如果x=true
x.DoIfTrueOrFalse(actionT,actionF) 执行action如果x=true,否则执行actionF

动词规范:所有API中,简介以“执行”开头的方法能且只能作为链式编程最后一个方法,因为它的返回值类型为void 以下是一个简单的示例:

const double test = -1;

test.Plus(10).DoIfThirteen(() => Console.WriteLine("Yes!"));
test.Minus(2).Rough().IsThirteen().Or(
    test.Plus(14).IsThirteen()).DoIfTrue(() =>
    Console.WriteLine("Oh!"));

控制台打印结果:

Oh!

如果你有其它想法,欢迎发送pull request.

Copyright Arabidopsis.

About

A Nuget package used to determine whether a number is equal to 13

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages