当前位置: 首页>>代码示例>>C#>>正文


C# Class.const_defined方法代码示例

本文整理汇总了C#中Ruby.Class.const_defined方法的典型用法代码示例。如果您正苦于以下问题:C# Class.const_defined方法的具体用法?C# Class.const_defined怎么用?C# Class.const_defined使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Ruby.Class的用法示例。


在下文中一共展示了Class.const_defined方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: make_struct

        internal static Class make_struct(string name, Array members, Class klass, Frame caller)
        {
            // Compiler Bug???: Found bug here the following code crashes this method:
            // Customer = Struct.new( :name, :address, :zip )  

            // FIXME: OBJ_FREEZE(members);            
            Class nstr = null;

            if (name == null)
            {
                nstr = new Class(null, klass, Class.Type.Class);
                Class.rb_make_metaclass(nstr, klass.my_class);
                nstr.class_inherited(klass, caller);
            }
            else
            {
                if (!Symbol.is_const_id(name))
                {
                    throw new NameError("identifier " + name + " needs to be constant").raise(caller);
                }
                if (klass.const_defined(name, false))
                {
                    // rb_warn
                    klass.remove_const(name);
                }

                nstr = Class.rb_define_class_under(klass, name, klass, caller);
            }
            nstr.instance_variable_set("__size__", members.Count);
            nstr.instance_variable_set("__members__", members);

            Class.rb_define_alloc_func(nstr, Methods.struct_alloc.singleton);
            Class.rb_define_singleton_method(nstr, "new", Methods.rb_class_new_instance.singleton, -1, caller);
            Class.rb_define_singleton_method(nstr, "[]", Methods.rb_class_new_instance.singleton, -1, caller);
            Class.rb_define_singleton_method(nstr, "members", Methods.rb_struct_s_members.singleton, 0, caller);

            foreach (object m in members)
            {
                string id = Symbol.rb_to_id(caller, m);
                if (Symbol.is_local_id(id) || Symbol.is_const_id(id))
                {
                    Class.rb_define_method(nstr, id, new AttrReaderMethodBody(id), 0, caller);
                    Class.rb_define_method(nstr, id + "=", new AttrWriterMethodBody(id), 1, caller);
                }
            }

            return nstr;
        }
开发者ID:chunlea,项目名称:rubydotnetcompiler,代码行数:48,代码来源:Struct.cs

示例2: const_get

        internal static object const_get(Class current, string id, Frame caller) {
            if (current.const_defined(id, false))
                return current.const_get(id, caller);

            foreach (Class klass in caller.nesting())
                if (klass.const_defined(id, false))
                    return klass.const_get(id, caller);

            return current.const_get(id, caller);
        }
开发者ID:chunlea,项目名称:rubydotnetcompiler,代码行数:10,代码来源:Eval.cs

示例3: const_defined

        internal static bool const_defined(Class current, string id, Frame caller) {
            if (current.const_defined(id, false))
                return true;

            foreach (Class klass in caller.nesting())
                if (klass.const_defined(id, false))
                    return true;

            return current.const_defined(id, true);
        }
开发者ID:chunlea,项目名称:rubydotnetcompiler,代码行数:10,代码来源:Eval.cs


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