Fri Sep 14 16:12:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
[mono.git] / mcs / class / corlib / System.Reflection / MethodBase.cs
1
2 using System;
3 using System.Globalization;
4
5 namespace System.Reflection {
6
7         public abstract class MethodBase: MemberInfo {
8
9                 private CallingConventions call_conv;
10         
11                 public static MethodBase GetCurrentMethod()
12                 {
13                         return null;
14                 }
15
16                 public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle)
17                 {
18                         return null;
19                 }
20
21                 public abstract MethodImplAttributes GetMethodImplementationFlags();
22
23                 public abstract ParameterInfo[] GetParameters();
24                 
25                 public Object Invoke(Object obj, Object[] parameters) {
26                         return null;
27                 }
28
29                 public abstract Object Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture);
30
31                 protected MethodBase()
32                 {
33                 }
34
35                 public abstract RuntimeMethodHandle MethodHandle { get; }
36                 public abstract MethodAttributes Attributes { get; }
37                 public virtual CallingConventions CallingConvention { get {return call_conv;} }
38                 public Boolean IsPublic { 
39                         get {
40                                 int attr = (int)Attributes;
41                                 return (attr & (int)MethodAttributes.Public) != 0;
42                         }
43                 }
44                 public Boolean IsPrivate {
45                         get {
46                                 int attr = (int)Attributes;
47                                 return (attr & (int)MethodAttributes.Private) != 0;
48                         }
49                 }
50                 public Boolean IsFamily {
51                         get {
52                                 int attr = (int)Attributes;
53                                 return (attr & (int)MethodAttributes.Family) != 0;
54                         }
55                 }
56                 public Boolean IsAssembly {
57                         get {
58                                 int attr = (int)Attributes;
59                                 return (attr & (int)MethodAttributes.Assembly) != 0;
60                         }
61                 }
62                 public Boolean IsFamilyAndAssembly {
63                         get {
64                                 int attr = (int)Attributes;
65                                 return (attr & (int)MethodAttributes.FamANDAssem) != 0;
66                         }
67                 }
68                 public Boolean IsFamilyOrAssembly {
69                         get {
70                                 int attr = (int)Attributes;
71                                 return (attr & (int)MethodAttributes.FamORAssem) != 0;
72                         }
73                 }
74                 public Boolean IsStatic {
75                         get {
76                                 int attr = (int)Attributes;
77                                 return (attr & (int)MethodAttributes.Static) != 0;
78                         }
79                 }
80                 public Boolean IsFinal {
81                         get {
82                                 int attr = (int)Attributes;
83                                 return (attr & (int)MethodAttributes.Final) != 0;
84                         }
85                 }
86                 public Boolean IsVirtual {
87                         get {
88                                 int attr = (int)Attributes;
89                                 return (attr & (int)MethodAttributes.Virtual) != 0;
90                         }
91                 }
92                 public Boolean IsHideBySig {
93                         get {
94                                 int attr = (int)Attributes;
95                                 return (attr & (int)MethodAttributes.HideBySig) != 0;
96                         }
97                 }
98                 public Boolean IsAbstract {
99                         get {
100                                 int attr = (int)Attributes;
101                                 return (attr & (int)MethodAttributes.Abstract) != 0;
102                         }
103                 }
104                 public Boolean IsSpecialName {
105                         get {
106                                 int attr = (int)Attributes;
107                                 return (attr & (int)MethodAttributes.SpecialName) != 0;
108                         }
109                 }
110                 public Boolean IsConstructor {
111                         get {
112                                 int attr = (int)Attributes;
113                                 return ((attr & (int)MethodAttributes.RTSpecialName) != 0
114                                         && (Name == ".ctor"));
115                         }
116                 }
117         }
118 }