• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# IArgs类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中IArgs的典型用法代码示例。如果您正苦于以下问题:C# IArgs类的具体用法?C# IArgs怎么用?C# IArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IArgs类属于命名空间,在下文中一共展示了IArgs类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: HasOwnProperty

 private static IDynamic HasOwnProperty(IEnvironment environment, IArgs args)
 {
     if (args.IsEmpty) return environment.False;
     var obj = environment.Context.ThisBinding.ConvertToObject();
     var desc = obj.GetOwnProperty(args[0].ConvertToString().BaseValue);
     return environment.CreateBoolean(desc != null);
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:7,代码来源:PObject.cs


示例2: Call

        public virtual IDynamic Call(IEnvironment environment, IDynamic thisBinding, IArgs args)
        {
            var oldContext = environment.Context;
            var newEnvironment = Scope.NewDeclarativeEnvironment();
            using (var newContext = environment.EnterContext())
            {
                newContext.LexicalEnviroment = newEnvironment;
                newContext.VariableEnviroment = newEnvironment;
                newContext.Strict = ExecutableCode.Strict;
                if (ExecutableCode.Strict)
                {
                    newContext.ThisBinding = thisBinding;
                }
                else
                {
                    switch (thisBinding.TypeCode)
                    {
                        case LanguageTypeCode.Undefined:
                        case LanguageTypeCode.Null:
                            newContext.ThisBinding = Environment.GlobalObject;
                            break;
                        default:
                            newContext.ThisBinding = thisBinding.ConvertToObject();
                            break;
                    }
                }

                BindFormalParameters(args);
                Environment.BindFunctionDeclarations(ExecutableCode.FunctionDeclarations, ExecutableCode.Strict, true);
                BindArgumentsObject(args);
                Environment.BindVariableDeclarations(ExecutableCode.VariableDeclarations, ExecutableCode.Strict, true);
                return ExecutableCode.Code(environment, args);
            }
        }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:34,代码来源:NFunction.cs


示例3: CreateIterator

 public override IDynamic CreateIterator(IEnvironment environment, IArgs args)
 {
     var scope = Scope.NewDeclarativeEnvironment();
     var generator = new Generator(new GeneratorSteps(Steps));
     var iterator = new HGeneratorIterator(environment, generator, VariableDeclarations, scope);
     return iterator;
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:7,代码来源:HGeneratorIterable.cs


示例4: Stringify

 internal static IDynamic Stringify(IEnvironment environment, IArgs args)
 {
     var value = args[0];
     var replacer = args[1];
     var space = args[2];
     return Machete.Compiler.JsonParser.Stringify(environment, value, replacer, space);
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:7,代码来源:BJson.cs


示例5: IsArray

        internal static IDynamic IsArray(IEnvironment environment, IArgs args)
        {
            // 15.4.3.2 Array.isArray ( arg )

            var arg = args[0] as IObject;
            return environment.CreateBoolean(arg != null && arg.Class == "Array");
        }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:7,代码来源:CArray.cs


示例6: Call

 protected override sealed IDynamic Call(IEnvironment environment, IArgs args)
 {
     if (args.Count > 0)
     {
         return args[0].ConvertToString();
     }
     return environment.CreateString("");
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:8,代码来源:CString.cs


示例7: Call

 protected override sealed IDynamic Call(IEnvironment environment, IArgs args)
 {
     if (args.Count > 0)
     {
         return args[0].ConvertToNumber();
     }
     return environment.CreateNumber(0.0);
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:8,代码来源:CNumber.cs


示例8: Call

 public IDynamic Call(IEnvironment environment, IDynamic thisBinding, IArgs args)
 {
     using (var newContext = environment.EnterContext())
     {
         Environment.Context.ThisBinding = thisBinding;
         return _code(environment, args);
     }
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:8,代码来源:BFunction.cs


示例9: Construct

 public override IObject Construct(IEnvironment environment, IArgs args)
 {
     var func = TargetFunction as NFunction;
     if (func == null)
     {
         throw Environment.CreateTypeError("");
     }
     return func.Construct(environment, environment.ConcatArgs(BoundArguments, args));
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:9,代码来源:NBoundFunction.cs


示例10: Construct

 public override IObject Construct(IEnvironment environment, IArgs args)
 {
     var obj = new NBoolean(environment);
     obj.Class = "Boolean";
     obj.Extensible = true;
     obj.PrimitiveValue = args[0].ConvertToBoolean();
     obj.Prototype = environment.BooleanPrototype;
     return obj;
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:9,代码来源:CBoolean.cs


示例11: Call

 protected override sealed IDynamic Call(IEnvironment environment, IArgs args)
 {
     var patternObject = args[0] as IObject;
     if (patternObject != null && patternObject.Class == "RegExp")
     {
         return patternObject;
     }
     return Construct(environment, args);
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:9,代码来源:CRegExp.cs


示例12: FromCharCode

 internal static IDynamic FromCharCode(IEnvironment environment, IArgs args)
 {
     var sb = new StringBuilder(args.Count);
     foreach (var arg in args)
     {
         sb.Append((char)arg.ConvertToUInt16().BaseValue);
     }
     return environment.CreateString(sb.ToString());
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:9,代码来源:CString.cs


示例13: Filter

 internal static IDynamic Filter(IEnvironment environment, IArgs args)
 {
     if (args.Count < 2)
         throw environment.CreateTypeError("The arguments 'iterable' and 'predicate' are required.");
     var iterable = args[1].ConvertToObject();
     var predicate = args[0].ConvertToObject() as ICallable;
     if (predicate == null)
         throw environment.CreateTypeError("The argument 'predicate' must be a callable function.");
     return new HFilterIterable(environment, iterable, predicate);
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:10,代码来源:HIterable.cs


示例14: Assert

 internal static IDynamic Assert(IEnvironment environment, IArgs args)
 {
     var condition = args[0].ConvertToBoolean().BaseValue;
     if (!condition)
     {
         var message = args[1].ConvertToString().BaseValue;
         throw environment.CreateError(message);
     }
     return environment.Undefined;
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:10,代码来源:BGlobal.cs


示例15: Next

 public override IDynamic Next(IEnvironment environment, IArgs args)
 {
     if (_complete)
         return environment.False;
     _initialized = true;
     if (++_index < _length)
         return environment.True;
     _complete = true;
     return environment.False;
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:10,代码来源:HStringIterator.cs


示例16: Asin

 internal static IDynamic Asin(IEnvironment environment, IArgs args)
 {
     double x = args[0].ConvertToNumber().BaseValue;
     if (double.IsNaN(x))
         return environment.CreateNumber(double.NaN);
     if (x > 1.0 || x < -1.0)
         return environment.CreateNumber(double.NaN);
     if (x == 0.0)
         return environment.CreateNumber(x);
     return environment.CreateNumber(Math.Asin(x));
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:11,代码来源:BMath.cs


示例17: Abs

 internal static IDynamic Abs(IEnvironment environment, IArgs args)
 {
     double x = args[0].ConvertToNumber().BaseValue;
     if (double.IsNaN(x))
         return environment.CreateNumber(double.NaN);
     if (IsNegativeZero(x))
         return environment.CreateNumber(0.0);
     if (double.IsNegativeInfinity(x))
         return environment.CreateNumber(double.PositiveInfinity);
     return environment.CreateNumber(Math.Abs(x));
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:11,代码来源:BMath.cs


示例18: Construct

        public override sealed IObject Construct(IEnvironment environment, IArgs args)
        {
            var patternArg = args[0];
            var flagsArg = args[1];
            var pattern = "";
            var flags = "";
            bool global, ignoreCase, multiline;

            var patternObject = patternArg as IObject;
            if (patternObject != null && patternObject.Class == "RegExp")
            {
                if (flagsArg.TypeCode != LanguageTypeCode.Undefined)
                {
                    throw environment.CreateTypeError("");
                }
                global = ((IBoolean)patternObject.Get("global")).BaseValue;
                ignoreCase = ((IBoolean)patternObject.Get("ignoreCase")).BaseValue;
                multiline = ((IBoolean)patternObject.Get("multiline")).BaseValue;
                pattern = ((IString)patternObject.Get("source")).BaseValue;
                if (global) flags += "g";
                if (ignoreCase) flags += "i";
                if (multiline) flags += "m";
            }
            else
            {
                if (patternArg.TypeCode != LanguageTypeCode.Undefined)
                {
                    pattern = patternArg.ConvertToString().BaseValue;
                }
                if (flagsArg.TypeCode != LanguageTypeCode.Undefined)
                {
                    flags = flagsArg.ConvertToString().BaseValue;
                }
                global = flags.Contains("g");
                ignoreCase = flags.Contains("i");
                multiline = flags.Contains("m");
            }

            var regExpObj = new NRegExp(environment);
            regExpObj.Class = "RegExp";
            regExpObj.Extensible = true;
            regExpObj.Prototype = environment.RegExpPrototype;
            regExpObj.Body = pattern;
            regExpObj.Flags = flags;
            regExpObj.RegExpMatcher = Machete.Compiler.RegExpParser.Parse(Environment, pattern, flags);
            regExpObj.DefineOwnProperty("source", environment.CreateDataDescriptor(environment.CreateString(pattern), false, false, false), false);
            regExpObj.DefineOwnProperty("global", environment.CreateDataDescriptor(environment.CreateBoolean(global), false, false, false), false);
            regExpObj.DefineOwnProperty("ignoreCase", environment.CreateDataDescriptor(environment.CreateBoolean(ignoreCase), false, false, false), false);
            regExpObj.DefineOwnProperty("multiline", environment.CreateDataDescriptor(environment.CreateBoolean(multiline), false, false, false), false);
            regExpObj.DefineOwnProperty("lastIndex", environment.CreateDataDescriptor(environment.CreateNumber(0.0), true, false, false), false);
            return regExpObj;
        }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:52,代码来源:CRegExp.cs


示例19: Iterate

 internal static IDynamic Iterate(IEnvironment environment, IArgs args)
 {
     var iterator = new Iterator(environment, args[1]);
     var callback = args[0] as ICallable;
     if (callback == null)
         throw environment.CreateTypeError("The argument 'callback' must be a callable function.");
     while (iterator.Next())
     {
         var callArgs = environment.CreateArgs(new[] { iterator.Current });
         callback.Call(environment, environment.Undefined, callArgs);
     }
     return environment.Undefined;
 }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:13,代码来源:HIterable.cs


示例20: Construct

        public override IObject Construct(IEnvironment environment, IArgs args)
        {
            var r = new NDate(environment);
            r.Class = "Date";
            r.Extensible = true;
            r.Prototype = environment.DatePrototype;

            var argCount = args.Count;
            double timeValue = 0.0;
            if (argCount == 0)
            {
                timeValue = (DateTime.UtcNow - _utcStart).TotalMilliseconds;
            }
            else if (argCount == 1)
            {
                var value = args[0].ConvertToPrimitive(null);
                if (value.TypeCode == LanguageTypeCode.String)
                {
                    timeValue = Parse(environment, args).ConvertToNumber().BaseValue;
                }
                else
                {
                    timeValue = value.ConvertToNumber().BaseValue;
                }
            }
            else
            {
                var year = args[0].ConvertToNumber().ConvertToInteger().BaseValue;
                var month = args[1].ConvertToNumber().BaseValue;
                var date = argCount > 2 ? args[2].ConvertToNumber().BaseValue : 1.0;
                var hours = argCount > 3 ? args[3].ConvertToNumber().BaseValue : 0.0;
                var minutes = argCount > 4 ? args[4].ConvertToNumber().BaseValue : 0.0;
                var seconds = argCount > 5 ? args[5].ConvertToNumber().BaseValue : 0.0;
                var ms = argCount > 6 ? args[6].ConvertToNumber().BaseValue : 0.0;

                if (!double.IsNaN(year) && year >= 0.0 && year <= 99)
                {
                    year = 1900.0 + year;
                }

                var dayPortion = PDate.MakeDay(year, month, date);
                var timePortion = PDate.MakeTime(hours, minutes, seconds, ms);
                var dateValue = PDate.MakeDate(dayPortion, timePortion);

                timeValue = PDate.TimeClip(PDate.UTC(dateValue));
            }

            r.PrimitiveValue = environment.CreateNumber(PDate.TimeClip(timeValue));
            return r;
        }
开发者ID:ChaosPandion,项目名称:Machete,代码行数:50,代码来源:CDate.cs



注:本文中的IArgs类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# IArgumentProvider类代码示例发布时间:2022-05-24
下一篇:
C# IArea类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap