确定您是否已选中或未选中

use*_*248 0 c#

在C#中,有没有办法在代码中检测当前运行的代码块是以检查还是未检查的模式运行?

例如 - 如果您在库中有一个方法供其他人使用,并且您想要决定是否溢出您在自定义数据类型上执行的算术运算.

Ser*_*rvy 5

给定方法是使用已检查还是未选中的运算符与调用者无关.它在编译时静态知道.没有办法动态检查它,因为没有必要或点,它不能动态改变.

只要您使用所需的已选中/未选中的设置编译库,或者根据需要在代码中使用已选中/未选中的块,那么您的代码就可以了,并且对于您的库的任何调用者都没有任何方法更改您正在使用的运算符.

如果您希望库的使用者能够确定您是使用选中还是未选中的操作,那么您将需要提供多个方法(一个已检查且一个未选中),分发两个版本的项目,一个编译为未选中和一个检查,或沿着这些线的东西.没有办法在运行时更改算术运算符绑定的代码.