c#如何将null值附值decimal类型变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何将null值附值decimal类型变量相关的知识,希望对你有一定的参考价值。

例如我定义一个变量为decimal abc;
我如何把null值附给变量abc呢?

你可以使用Nullable class(.NET 2.0 新加)。
decimal? abc;
这样abc = null就可以使用了。
另外请参考??操作符。
不过Nullable需要先判断HasValue属性或者是否为null。

不过不要过量使用Nullable
参考技术A .net里面decimal是值类型,不可能为空
可以设置为
decimal.MaxValue 表示 Decimal 的最大可能值。该字段是常数且为只读。
decimal.MinusOne 表示数字负一 (-1)。
decimal.MinValue 表示 Decimal 的最小可能值。该字段是常数且为只读。
decimal.One 表示数字一 (1)。
decimal.Zero 表示数字零 (0)。
参考技术B 抱歉,decimal是值类型,你可以考虑使用Decimal?类型,然后用.value取值

CBScript 自定义脚本语言

1、变量定义 以Var 开头

//定义变量I,附值为数值,数值都是decimal类型

Var i=0 

//定义变量,附值为字符串

var a=""

//定义变量list 附值为 ListNew() 通过listnew函数返回一个集合

Var list=ListNew()

//定义变量hash 附值为HashtableNew(),通过HashtableNew创建新的hash表

2、注释

注释以单独行 "//"开始

3、支持的语句

    仅支持赋值语句,WHILE语句,FOREACH语句,IF语句。

   每行为一条语句

3.1 赋值语句

       var a=100

       a=200

3.2 WHILE循环语句

     var i=1

     while i<100

         i=i+1

    endwhile

3.3 FOREACH语句

var list=listnew(1,2,3,4)

var count=0

foreach item in list

   count=count+item

endforeach

3.4 IF语句

var a=100

var has=false

if a>100

a=true

else a>50

a=true

else a>30

a=true

else

a=false

endif

4、支持的API 函数

ConvertFunctionContainer.ConvertFunctionContainer(Feng.Script.CBEexpress.IMethodCollection) ConvertFunctionContainer.ConvertToBoolean(object[]) ConvertFunctionContainer.ConvertToDateTime(object[]) ConvertFunctionContainer.ConvertToDecimal(object[]) ConvertFunctionContainer.ConvertToDouble(object[]) ConvertFunctionContainer.ConvertToInt(object[]) ConvertFunctionContainer.ConvertToInt64(object[]) ConvertFunctionContainer.ConvertToSingle(object[]) ConvertFunctionContainer.ConvertToString(object[]) ConvertFunctionContainer.ConvertToUInt(object[]) ConvertFunctionContainer.ConvertToUInt64(object[])

5、支持自定义API

      5.1步骤:定义返回类型为object 参数类型类object [] args 函数

     5.2步骤:将函数加入到API列表

     5.3示例:

        //自定义的API函数
        public object CustomFunction(object [] args)
        {
            return 100;
        }

        [TestMethod()]
        public void Script_Test_Custom()
        {
            int a = 6 % 3 << 4 * 20;
            int target = 1 + 2 + 3 + 4 + 2 + 6 % 3 << 4 * 20 + (12 - 32)+100;
            string str = @"1+2+3+4+2+6%3<<4*20+(12-32)+Custom()";

            FunctionBody function = new FunctionBody();
            ExcuteProxy excuteProxy = new ExcuteProxy();
            CBMethod cbmethod = new CBMethod();
            CBMethodContainer methodContainer = new CBMethodContainer(cbmethod.Methods);

            //将自定义函数加入到API列表
            methodContainer.MethodList.Add(new BaseMethod() { Function = CustomFunction, Name = "Custom" });
            cbmethod.Methods.Add(methodContainer);
            excuteProxy.RunMethod = cbmethod;
            function.Script.ExecProxy = excuteProxy;

            object value = function.Exec(str);
            Assert.AreEqual(target, value);
        }

 

 

 

 

 

 

 

 

 

 

 

以上是关于c#如何将null值附值decimal类型变量的主要内容,如果未能解决你的问题,请参考以下文章

CBScript 自定义脚本语言

CBScript 自定义脚本语言

如何给一个decimal数据类型的变量赋个空值?

请问一下C#这句代码啥意思啊? decimal? a= 0; 看着像条件运算,又不像!

c# decimal类型 有没有像string.Empty那样的值?

c#中怎样使decimal类型变量保留固定小数位?