コード例 #1
0
ファイル: Sympl.cs プロジェクト: kuny/MeagerLisp
        public override bool Equals(object obj)
        {
            InvokeMemberBinderKey key = obj as InvokeMemberBinderKey;

            // Don't lower the name.  Sympl is case-preserving in the metadata
            // in case some DynamicMetaObject ignores ignoreCase.  This makes
            // some interop cases work, but the cost is that if a Sympl program
            // spells ".foo" and ".Foo" at different sites, they won't share rules.
            return(key != null && key._name == _name && key._info.Equals(_info));
        }
コード例 #2
0
ファイル: Sympl.cs プロジェクト: kuny/MeagerLisp
 public SymplInvokeMemberBinder GetInvokeMemberBinder
     (InvokeMemberBinderKey info)
 {
     lock (_invokeMemberBinders) {
         if (_invokeMemberBinders.ContainsKey(info))
         {
             return(_invokeMemberBinders[info]);
         }
         var b = new SymplInvokeMemberBinder(info.Name, info.Info);
         _invokeMemberBinders[info] = b;
         return(b);
     }
 }