PageRenderTime 64ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/Languages/Ruby/Tests/Interop/net/fixtures.generated.cs

http://github.com/IronLanguages/main
C# | 1893 lines | 1538 code | 315 blank | 40 comment | 21 complexity | e2d47311f59f0f6621cf0c5c365b02fa MD5 | raw file
Possible License(s): CPL-1.0, BSD-3-Clause, ISC, GPL-2.0, MPL-2.0-no-copyleft-exception

Large files files are truncated, but you can click here to view the full file

  1. using System;
  2. using System.Collections;
  3. using System.Runtime.InteropServices;
  4. using Microsoft.Scripting.Hosting;
  5. using IronRuby.Runtime;
  6. using IronRuby.Builtins;
  7. using Microsoft.Scripting.Math;
  8. using Microsoft.Scripting.Utils;
  9. using System.Collections.Generic;
  10. #line 1 "./bcl/fixtures/classes.rb"
  11. #line 5 "./bcl/fixtures/classes.rb"
  12. public partial class Klass {
  13. public T[] ArrayAcceptingMethod<T>(T[] arg0) {
  14. return arg0;
  15. }
  16. public decimal MyDecimal {get; set;}
  17. public string A(){
  18. return "a";
  19. }
  20. public string Aa(){
  21. return "aa";
  22. }
  23. }
  24. public static class EqualityChecker {
  25. public static new bool Equals(object o1, object o2) { return o1.Equals(o2); }
  26. }
  27. public class Equatable {
  28. public override bool Equals(object other) { return (other is string) && ((string)other) == "ClrMarker"; }
  29. public override int GetHashCode() { throw new NotImplementedException(); }
  30. }
  31. public static class Hasher {
  32. public static int GetHashCode(object o) { return o.GetHashCode(); }
  33. }
  34. public class Hashable {
  35. public override int GetHashCode() { return 123; }
  36. }
  37. public class IComparableConsumer {
  38. public static int Consume(IComparable icomp) {
  39. return icomp.CompareTo(1);
  40. }
  41. }
  42. public class IComparableProvider {
  43. }
  44. public interface ITestList : IEnumerable {
  45. }
  46. public class Tester {
  47. public ArrayList Test(ITestList list) {
  48. ArrayList l = new ArrayList();
  49. foreach(var item in list) {
  50. l.Add(item);
  51. }
  52. return l;
  53. }
  54. }
  55. public partial class NumericHelper {
  56. public static int SizeOfByte() {
  57. return sizeof(Byte);
  58. }
  59. public static int SizeOfInt16() {
  60. return sizeof(Int16);
  61. }
  62. public static int SizeOfInt32() {
  63. return sizeof(Int32);
  64. }
  65. public static int SizeOfInt64() {
  66. return sizeof(Int64);
  67. }
  68. public static int SizeOfSByte() {
  69. return sizeof(SByte);
  70. }
  71. public static int SizeOfUInt16() {
  72. return sizeof(UInt16);
  73. }
  74. public static int SizeOfUInt32() {
  75. return sizeof(UInt32);
  76. }
  77. public static int SizeOfUInt64() {
  78. return sizeof(UInt64);
  79. }
  80. public static int SizeOfDecimal() {
  81. return sizeof(Decimal);
  82. }
  83. }
  84. namespace RegressionSpecs {
  85. public class B { }
  86. public class C : B { }
  87. public interface I1 { int f(); }
  88. public interface I2 { int g(); }
  89. }
  90. #line 1 "./class/fixtures/classes.rb"
  91. #line 4 "./class/fixtures/classes.rb"
  92. public class EmptyClass {}
  93. public abstract class EmptyAbstractClass {}
  94. public abstract class AbstractClass {public abstract int m();}
  95. public static class EmptyStaticClass {}
  96. public static class StaticClass {public static int m() {return 1;}}
  97. public sealed class SealedClass {public int m() {return 1;}}
  98. public sealed class EmptySealedClass {}
  99. public class EmptyGenericClass<T>{}
  100. public class GenericClass<T>{public int m() {return 1;}}
  101. public class EmptyGeneric2Class<T,U>{}
  102. public class Generic2Class<T,U>{public int m() {return 1;}}
  103. public partial class Klass {
  104. public int m() {return 1;}
  105. public int BarI() {
  106. return 1;
  107. }
  108. public static int BarC() {
  109. return 2;
  110. }
  111. }
  112. public partial class DerivedFromAbstract : AbstractClass {
  113. public override int m() {return 1;}
  114. }
  115. public abstract partial class AbstractDerived : Klass {}
  116. public partial class OverloadedConstructorClass {
  117. public string val;
  118. public OverloadedConstructorClass() {
  119. val = "empty constructor";
  120. }
  121. public OverloadedConstructorClass(string str) {
  122. val = "string constructor";
  123. }
  124. public OverloadedConstructorClass(string str, int i) {
  125. val = "string int constructor";
  126. }
  127. }
  128. public class ClassWithOptionalConstructor {
  129. public int Arg {get; set;}
  130. public ClassWithOptionalConstructor([Optional]int arg) {
  131. Arg = arg;
  132. }
  133. }
  134. //TODO: the marshal attribute shouldn't be needed. this was due to a super
  135. //bug not a marshal bug.
  136. public abstract class Unsafe {
  137. [return: MarshalAs(UnmanagedType.U1)]
  138. public virtual bool Foo() { return true;}
  139. }
  140. public interface IHaveAnEvent {
  141. event EventHandler MyEvent;
  142. }
  143. public abstract class AbstractHasAnEvent : IHaveAnEvent {
  144. public abstract event EventHandler MyEvent;
  145. }
  146. public class ExplicitIInterface : IInterface {
  147. public int Tracker {get; set;}
  148. public ExplicitIInterface() {
  149. Tracker = 0;
  150. }
  151. public void Reset() {
  152. Tracker = 0;
  153. }
  154. void IInterface.m() {
  155. Tracker = 2;
  156. }
  157. public void m() {
  158. Tracker = 1;
  159. }
  160. }
  161. #line 8 "./delegate/fixtures/classes.rb"
  162. #line 13 "./delegate/fixtures/classes.rb"
  163. public partial class DelegateConversionClass {
  164. public delegate int Delegate1(string str);
  165. private ScriptEngine _engine;
  166. private Proc _lambda;
  167. public DelegateConversionClass(string lambdaExpr) {
  168. _engine = IronRuby.Ruby.CreateEngine();
  169. _lambda = (Proc) _engine.Execute(lambdaExpr);
  170. }
  171. public int DirectInvoke() {
  172. return (int) _engine.Operations.Invoke(_lambda, "1");
  173. }
  174. public int ConvertToDelegate() {
  175. Delegate1 d = _engine.Operations.ConvertTo<Delegate1>(_lambda);
  176. return d("1");
  177. }
  178. }
  179. public partial class DelegateHolder {
  180. public delegate string[] ARefVoidDelegate();
  181. public delegate string[] ARefRefDelegate(string foo);
  182. public delegate string[] ARefValDelegate(int foo);
  183. public delegate string[] ARefARefDelegate(string[] foo);
  184. public delegate string[] ARefAValDelegate(int[] foo);
  185. public delegate string[] ARefGenericDelegate<T>(T foo);
  186. public delegate void VoidVoidDelegate();
  187. public delegate void VoidRefDelegate(string foo);
  188. public delegate void VoidValDelegate(int foo);
  189. public delegate void VoidARefDelegate(string[] foo);
  190. public delegate void VoidAValDelegate(int[] foo);
  191. public delegate void VoidGenericDelegate<T>(T foo);
  192. public delegate int ValVoidDelegate();
  193. public delegate int ValRefDelegate(string foo);
  194. public delegate int ValValDelegate(int foo);
  195. public delegate int ValARefDelegate(string[] foo);
  196. public delegate int ValAValDelegate(int[] foo);
  197. public delegate int ValGenericDelegate<T>(T foo);
  198. public delegate string RefVoidDelegate();
  199. public delegate string RefRefDelegate(string foo);
  200. public delegate string RefValDelegate(int foo);
  201. public delegate string RefARefDelegate(string[] foo);
  202. public delegate string RefAValDelegate(int[] foo);
  203. public delegate string RefGenericDelegate<T>(T foo);
  204. public delegate U GenericVoidDelegate<U>();
  205. public delegate U GenericRefDelegate<U>(string foo);
  206. public delegate U GenericValDelegate<U>(int foo);
  207. public delegate U GenericARefDelegate<U>(string[] foo);
  208. public delegate U GenericAValDelegate<U>(int[] foo);
  209. public delegate U GenericGenericDelegate<T, U>(T foo);
  210. public delegate int[] AValVoidDelegate();
  211. public delegate int[] AValRefDelegate(string foo);
  212. public delegate int[] AValValDelegate(int foo);
  213. public delegate int[] AValARefDelegate(string[] foo);
  214. public delegate int[] AValAValDelegate(int[] foo);
  215. public delegate int[] AValGenericDelegate<T>(T foo);
  216. }
  217. #line 1 "./enum/fixtures/classes.rb"
  218. public enum EnumInt : int { A, B, C}
  219. public enum CustomEnum { A, B, C}
  220. #line 1 "./events/fixtures/classes.rb"
  221. #pragma warning disable 67
  222. public delegate void EventHandler(object source, int count);
  223. public partial class BasicEventClass {
  224. public event EventHandler OnEvent;
  225. }
  226. #pragma warning restore 67
  227. public class ClassWithEvents {
  228. public event EventHandler FullEvent;
  229. public static event EventHandler StaticFullEvent;
  230. public void InvokeFullEvent(int count) {
  231. if (FullEvent != null) FullEvent(this, count);
  232. }
  233. public static void InvokeStaticFullEvent(int count) {
  234. if (StaticFullEvent != null) StaticFullEvent(new object(), count);
  235. }
  236. }
  237. #line 1 "./fields/fixtures/classes.rb"
  238. #pragma warning disable 414
  239. public partial class ClassWithFields {
  240. public string field = "field";
  241. public const string constField = "const";
  242. public readonly string readOnlyField = "readonly";
  243. public static string staticField = "static";
  244. public static readonly string staticReadOnlyField = "static readonly";
  245. private string privateField = "private field";
  246. private const string privateConstField = "private const";
  247. private readonly string privateReadOnlyField = "private readonly";
  248. private static string privateStaticField = "private static";
  249. private static readonly string privateStaticReadOnlyField = "private static readonly";
  250. protected string protectedField = "protected field";
  251. protected const string protectedConstField = "protected const";
  252. protected readonly string protectedReadOnlyField = "protected readonly";
  253. protected static string protectedStaticField = "protected static";
  254. protected static readonly string protectedStaticReadOnlyField = "protected static readonly";
  255. }
  256. #pragma warning disable 649
  257. public class InternalFieldTester {
  258. internal string MyField;
  259. public InternalFieldTester() {
  260. var runtime = ScriptRuntime.CreateFromConfiguration();
  261. var engine = runtime.GetEngine("IronRuby");
  262. var scope = engine.CreateScope();
  263. scope.SetVariable("foo", this);
  264. engine.Execute("foo.MyField = 'Hello'", scope);
  265. }
  266. }
  267. #pragma warning restore 414, 649
  268. #line 1 "./interface/fixtures/classes.rb"
  269. public interface IDoFoo {
  270. int Foo(string str);
  271. int Foo(int i);
  272. int Foo(string str, int i);
  273. }
  274. public interface IDoStuff {
  275. int StuffFoo(int foo);
  276. string StuffBar(int bar);
  277. }
  278. public class ConsumeIDoFoo {
  279. public static int ConsumeFoo1(IDoFoo foo) {
  280. return foo.Foo("hello");
  281. }
  282. public static int ConsumeFoo2(IDoFoo foo) {
  283. return foo.Foo(1);
  284. }
  285. public static int ConsumeFoo3(IDoFoo foo) {
  286. return foo.Foo("hello", 1);
  287. }
  288. }
  289. public class ConsumeIDoStuff {
  290. public static int ConsumeStuffFoo(IDoStuff stuff) {
  291. return stuff.StuffFoo(1);
  292. }
  293. public static string ConsumeStuffBar(IDoStuff stuff) {
  294. return stuff.StuffBar(2);
  295. }
  296. }
  297. public interface IExposing {
  298. event EventHandler<EventArgs> IsExposedChanged;
  299. bool IsExposed {get; set;}
  300. }
  301. public partial class Klass {
  302. public object AddEvent(IExposing arg) {
  303. arg.IsExposedChanged += EH;
  304. return arg;
  305. }
  306. public object RemoveEvent(IExposing arg) {
  307. arg.IsExposedChanged -= EH;
  308. return arg;
  309. }
  310. public void EH(object sender, EventArgs e) {
  311. _foo += 1;
  312. }
  313. }
  314. public interface IEmptyInterface {}
  315. public interface IInterface { void m();}
  316. public class ImplementsIInterface : IInterface {
  317. public void m() {
  318. return;
  319. }
  320. }
  321. public interface I1 { string M(); }
  322. public interface I2 { string M(); }
  323. public interface I3<T> { string M(); }
  324. public interface I4 { string M(int arg); }
  325. public class ClassI1_1 : I1 {
  326. string I1.M() { return "I1.M"; }
  327. }
  328. public class ClassI1_2 : I1 {
  329. string I1.M() { return "I1.M"; }
  330. public string M() { return "class M"; }
  331. }
  332. public class ClassI2I1 : I2, I1 {
  333. string I1.M() { return "I1.M"; }
  334. string I2.M() { return "I2.M"; }
  335. }
  336. public class ClassI3Obj : I3<object> {
  337. string I3<object>.M() { return "I3<object>.M"; }
  338. public string M() { return "class M"; }
  339. }
  340. public class ClassI1I2I3Obj : I1, I2, I3<object> {
  341. string I1.M() { return "I1.M"; }
  342. string I2.M() { return "I2.M"; }
  343. string I3<object>.M() { return "I3<object>.M"; }
  344. public string M() { return "class M"; }
  345. }
  346. public class ClassI3_1<T> : I3<T> {
  347. string I3<T>.M() { return "I3<T>.M"; }
  348. public string M() { return "class M"; }
  349. }
  350. public class ClassI3_2<T> : I3<T> {
  351. string I3<T>.M() { return "I3<T>.M"; }
  352. }
  353. public class ClassI3ObjI3Int : I3<object>, I3<int> {
  354. string I3<object>.M() { return "I3<object>.M";}
  355. string I3<int>.M() { return "I3<int>.M";}
  356. }
  357. public class ClassI1I4 : I1, I4 {
  358. string I1.M() { return "I1.M"; }
  359. string I4.M(int arg) { return "I4.M"; }
  360. }
  361. public class PublicIPublicInterface : IPublicInterface {
  362. public IPublicInterface Hello {
  363. get { return this; }
  364. set {}
  365. }
  366. public void Foo(IPublicInterface f) {
  367. }
  368. public IPublicInterface RetInterface() {
  369. return this;
  370. }
  371. public event PublicDelegateType MyEvent;
  372. public IPublicInterface FireEvent(PublicEventArgs args) {
  373. return MyEvent(this, args);
  374. }
  375. public PublicEventArgs GetEventArgs() {
  376. return new PublicEventArgs();
  377. }
  378. }
  379. public class PublicEventArgs : EventArgs { }
  380. class PrivateEventArgs : PublicEventArgs { }
  381. public delegate IPublicInterface PublicDelegateType(IPublicInterface sender, PublicEventArgs args);
  382. // Private class
  383. class PrivateClass : IPublicInterface {
  384. public IPublicInterface Hello {
  385. get { return this; }
  386. set { }
  387. }
  388. public void Foo(IPublicInterface f) {
  389. }
  390. public IPublicInterface RetInterface() {
  391. return this;
  392. }
  393. public event PublicDelegateType MyEvent;
  394. public IPublicInterface FireEvent(PublicEventArgs args) {
  395. return MyEvent(this, args);
  396. }
  397. public PublicEventArgs GetEventArgs() {
  398. return new PrivateEventArgs();
  399. }
  400. }
  401. //Public class
  402. public class PublicClass : IPublicInterface {
  403. public IPublicInterface Hello {
  404. get { return this; }
  405. set { }
  406. }
  407. public void Foo(IPublicInterface f) {
  408. }
  409. public IPublicInterface RetInterface() {
  410. return this;
  411. }
  412. public event PublicDelegateType MyEvent;
  413. public IPublicInterface FireEvent(PublicEventArgs args) {
  414. return MyEvent(this, args);
  415. }
  416. public PublicEventArgs GetEventArgs() {
  417. return new PublicEventArgs();
  418. }
  419. }
  420. // Public Interface
  421. public interface IPublicInterface {
  422. IPublicInterface Hello { get; set; }
  423. void Foo(IPublicInterface f);
  424. IPublicInterface RetInterface();
  425. event PublicDelegateType MyEvent;
  426. IPublicInterface FireEvent(PublicEventArgs args);
  427. PublicEventArgs GetEventArgs();
  428. }
  429. // Access the private class via the public interface
  430. public class InterfaceOnlyTest {
  431. public static IPublicInterface PrivateClass {
  432. get {
  433. return new PrivateClass();
  434. }
  435. }
  436. }
  437. public interface IHaveGenerics {
  438. T GenericsHere<T>(string arg1);
  439. T MoreGenericsHere<T,S>(S x);
  440. }
  441. public class EatIHaveGenerics {
  442. public static string TestGenericsHere(IHaveGenerics ihg){
  443. return ihg.GenericsHere<string>("test");
  444. }
  445. public static string TestMoreGenericsHere(IHaveGenerics ihg){
  446. return ihg.MoreGenericsHere<string, int>(1);
  447. }
  448. }
  449. #line 1 "./interfacegroup/fixtures/classes.rb"
  450. public interface IEmptyInterfaceGroup { }
  451. public interface IEmptyInterfaceGroup<T> { }
  452. public interface IEmptyInterfaceGroup1<T> {}
  453. public interface IEmptyInterfaceGroup1<T,V> {}
  454. public interface IInterfaceGroup {void m1();}
  455. public interface IInterfaceGroup<T> {void m1();}
  456. public interface IInterfaceGroup1<T> {void m1();}
  457. public interface IInterfaceGroup1<T,V> {void m1();}
  458. #line 3 "./method/fixtures/classes.rb"
  459. #line 147 "./method/fixtures/classes.rb"
  460. public abstract partial class AbstractClassWithMethods {
  461. public abstract string PublicMethod();
  462. protected abstract string ProtectedMethod();
  463. }
  464. public partial class Klass{
  465. public static int StaticVoidMethod() {
  466. return 1;
  467. }
  468. private int _foo;
  469. public int Foo {
  470. get { return _foo; }
  471. }
  472. public Klass() {
  473. _foo = 10;
  474. }
  475. }
  476. public partial class SubKlass : Klass {}
  477. #pragma warning disable 693
  478. public partial class GenericClassWithMethods<K> {
  479. #region private methods
  480. private string Private1Generic0Arg<T>() {
  481. return "private generic no args";
  482. }
  483. private string Private1Generic1Arg<T>(T arg0) {
  484. return Public1Generic1Arg<T>(arg0);
  485. }
  486. private string Private1Generic2Arg<T>(T arg0, string arg1) {
  487. return Public1Generic2Arg<T>(arg0, arg1);
  488. }
  489. private string Private2Generic2Arg<T, U>(T arg0, U arg1) {
  490. return Public2Generic2Arg<T, U>(arg0, arg1);
  491. }
  492. private string Private2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  493. return Public2Generic3Arg<T, U>(arg0, arg1, arg2);
  494. }
  495. private string Private3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  496. return Public3Generic3Arg<T, U, V>(arg0, arg1, arg2);
  497. }
  498. private string Private3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  499. return Public3Generic4Arg<T, U, V>(arg0, arg1, arg2, arg3);
  500. }
  501. #endregion
  502. #region protected methods
  503. protected string Protected1Generic0Arg<T>() {
  504. return "protected generic no args";
  505. }
  506. protected string Protected1Generic1Arg<T>(T arg0) {
  507. return Public1Generic1Arg<T>(arg0);
  508. }
  509. protected string Protected1Generic2Arg<T>(T arg0, string arg1) {
  510. return Public1Generic2Arg<T>(arg0, arg1);
  511. }
  512. protected string Protected2Generic2Arg<T, U>(T arg0, U arg1) {
  513. return Public2Generic2Arg<T, U>(arg0, arg1);
  514. }
  515. protected string Protected2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  516. return Public2Generic3Arg<T, U>(arg0, arg1, arg2);
  517. }
  518. protected string Protected3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  519. return Public3Generic3Arg<T, U, V>(arg0, arg1, arg2);
  520. }
  521. protected string Protected3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  522. return Public3Generic4Arg<T, U, V>(arg0, arg1, arg2, arg3);
  523. }
  524. #endregion
  525. #region public methods
  526. public string Public1Generic0Arg<T>() {
  527. return "public generic no args";
  528. }
  529. public string Public1Generic1Arg<T>(T arg0) {
  530. return arg0.ToString();
  531. }
  532. public string Public1Generic2Arg<T>(T arg0, string arg1) {
  533. return System.String.Format("{0} {1}", arg0, arg1);
  534. }
  535. public string Public2Generic2Arg<T, U>(T arg0, U arg1) {
  536. return Public1Generic2Arg<T>(arg0, arg1.ToString());
  537. }
  538. public string Public2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  539. return System.String.Format("{0} {1} {2}", arg0, arg1, arg2);
  540. }
  541. public string Public3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  542. return Public2Generic3Arg<T, U>(arg0, arg1, arg2.ToString());
  543. }
  544. public string Public3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  545. return System.String.Format("{0} {1} {2} {3}", arg0, arg1, arg2, arg3);
  546. }
  547. #endregion
  548. #region Constrained methods
  549. public T StructConstraintMethod<T>(T arg0)
  550. where T : struct {
  551. return arg0;
  552. }
  553. public T ClassConstraintMethod<T>(T arg0)
  554. where T : class {
  555. return arg0;
  556. }
  557. public T ConstructorConstraintMethod<T>()
  558. where T : new() {
  559. return new T();
  560. }
  561. public T TypeConstraintMethod<T, TBase>(T arg0)
  562. where T : TBase {
  563. return arg0;
  564. }
  565. #endregion
  566. public string Public1Generic2Arg<T>(T arg0, K arg1) {
  567. return Public2Generic2Arg<T, K>(arg0, arg1);
  568. }
  569. public string ConflictingGenericMethod<K>(K arg0) {
  570. return arg0.ToString();
  571. }
  572. }
  573. public partial class GenericClass2Params<K, J> {
  574. #region private methods
  575. private string Private1Generic0Arg<T>() {
  576. return "private generic no args";
  577. }
  578. private string Private1Generic1Arg<T>(T arg0) {
  579. return Public1Generic1Arg<T>(arg0);
  580. }
  581. private string Private1Generic2Arg<T>(T arg0, string arg1) {
  582. return Public1Generic2Arg<T>(arg0, arg1);
  583. }
  584. private string Private2Generic2Arg<T, U>(T arg0, U arg1) {
  585. return Public2Generic2Arg<T, U>(arg0, arg1);
  586. }
  587. private string Private2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  588. return Public2Generic3Arg<T, U>(arg0, arg1, arg2);
  589. }
  590. private string Private3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  591. return Public3Generic3Arg<T, U, V>(arg0, arg1, arg2);
  592. }
  593. private string Private3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  594. return Public3Generic4Arg<T, U, V>(arg0, arg1, arg2, arg3);
  595. }
  596. #endregion
  597. #region protected methods
  598. protected string Protected1Generic0Arg<T>() {
  599. return "protected generic no args";
  600. }
  601. protected string Protected1Generic1Arg<T>(T arg0) {
  602. return Public1Generic1Arg<T>(arg0);
  603. }
  604. protected string Protected1Generic2Arg<T>(T arg0, string arg1) {
  605. return Public1Generic2Arg<T>(arg0, arg1);
  606. }
  607. protected string Protected2Generic2Arg<T, U>(T arg0, U arg1) {
  608. return Public2Generic2Arg<T, U>(arg0, arg1);
  609. }
  610. protected string Protected2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  611. return Public2Generic3Arg<T, U>(arg0, arg1, arg2);
  612. }
  613. protected string Protected3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  614. return Public3Generic3Arg<T, U, V>(arg0, arg1, arg2);
  615. }
  616. protected string Protected3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  617. return Public3Generic4Arg<T, U, V>(arg0, arg1, arg2, arg3);
  618. }
  619. #endregion
  620. #region public methods
  621. public string Public1Generic0Arg<T>() {
  622. return "public generic no args";
  623. }
  624. public string Public1Generic1Arg<T>(T arg0) {
  625. return arg0.ToString();
  626. }
  627. public string Public1Generic2Arg<T>(T arg0, string arg1) {
  628. return System.String.Format("{0} {1}", arg0, arg1);
  629. }
  630. public string Public2Generic2Arg<T, U>(T arg0, U arg1) {
  631. return Public1Generic2Arg<T>(arg0, arg1.ToString());
  632. }
  633. public string Public2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  634. return System.String.Format("{0} {1} {2}", arg0, arg1, arg2);
  635. }
  636. public string Public3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  637. return Public2Generic3Arg<T, U>(arg0, arg1, arg2.ToString());
  638. }
  639. public string Public3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  640. return System.String.Format("{0} {1} {2} {3}", arg0, arg1, arg2, arg3);
  641. }
  642. #endregion
  643. #region Constrained methods
  644. public T StructConstraintMethod<T>(T arg0)
  645. where T : struct {
  646. return arg0;
  647. }
  648. public T ClassConstraintMethod<T>(T arg0)
  649. where T : class {
  650. return arg0;
  651. }
  652. public T ConstructorConstraintMethod<T>()
  653. where T : new() {
  654. return new T();
  655. }
  656. public T TypeConstraintMethod<T, TBase>(T arg0)
  657. where T : TBase {
  658. return arg0;
  659. }
  660. #endregion
  661. public string Public1Generic2Arg<T>(T arg0, K arg1) {
  662. return Public2Generic2Arg<T, K>(arg0, arg1);
  663. }
  664. public string ConflictingGenericMethod<K>(K arg0) {
  665. return arg0.ToString();
  666. }
  667. }
  668. #pragma warning restore 693
  669. public partial class ClassWithIndexer {
  670. public int[,] Values = new int[,] { {0, 10}, {20, 30} };
  671. public int this[int i, int j] {
  672. get { return Values[i,j]; }
  673. set { Values[i,j] = value; }
  674. }
  675. }
  676. internal partial class PartialClassWithMethods {
  677. internal int Foo(){ return 1; }
  678. }
  679. public partial class ClassWithOverloads {
  680. public string Overloaded() { return "empty"; }
  681. public string Overloaded(int arg) { return "one arg"; }
  682. public string Overloaded(int arg1, int arg2) { return "two args"; }
  683. public string Tracker { get; set;}
  684. public string PublicProtectedOverload(){
  685. return "public overload";
  686. }
  687. protected string PublicProtectedOverload(string str) {
  688. return "protected overload";
  689. }
  690. public void VoidSignatureOverload() { Tracker = "SO void"; }
  691. public void VoidSignatureOverload(string foo) { Tracker = "SO string"; }
  692. public void VoidSignatureOverload(int foo) { Tracker = "SO int"; }
  693. public void VoidSignatureOverload(string foo, params int[] bar) { Tracker = "SO string params(int[])"; }
  694. public void VoidSignatureOverload(string foo, params string[] bar) { Tracker = "SO string params(string[])"; }
  695. public void VoidSignatureOverload(string foo, int bar, int baz) { Tracker = "SO string int int";}
  696. public void VoidSignatureOverload(params int[] args) { Tracker = "SO params(int[])";}
  697. public void VoidSignatureOverload(ref string foo) { Tracker = "SO ref string"; }
  698. public void VoidSignatureOverload(out int foo) { foo = 1;Tracker = "SO out int"; }
  699. public void VoidSignatureOverload(string foo, ref string bar) { Tracker = "SO string ref"; }
  700. public void VoidSignatureOverload(ref string foo, string bar) { Tracker = "SO ref string"; }
  701. public void VoidSignatureOverload(out string foo, ref string bar) { foo = "out"; Tracker = "SO out ref"; }
  702. public string RefSignatureOverload() { return "SO void"; }
  703. public string RefSignatureOverload(string foo) { return "SO string"; }
  704. public string RefSignatureOverload(int foo) { return "SO int"; }
  705. public string RefSignatureOverload(string foo, params int[] bar) { return "SO string params(int[])"; }
  706. public string RefSignatureOverload(string foo, params string[] bar) { return "SO string params(string[])"; }
  707. public string RefSignatureOverload(string foo, int bar, int baz) { return "SO string int int";}
  708. public string RefSignatureOverload(params int[] args) { return "SO params(int[])";}
  709. public string RefSignatureOverload(ref string foo) { return "SO ref string"; }
  710. public string RefSignatureOverload(out int foo) { foo = 1;return "SO out int"; }
  711. public string RefSignatureOverload(string foo, ref string bar) { return "SO string ref"; }
  712. public string RefSignatureOverload(ref string foo, string bar) { return "SO ref string"; }
  713. public string RefSignatureOverload(out string foo, ref string bar) { foo = "out"; return "SO out ref"; }
  714. public string[] RefArraySignatureOverload() { return new string[]{"SO void"}; }
  715. public string[] RefArraySignatureOverload(string foo) { return new string[]{"SO string"}; }
  716. public string[] RefArraySignatureOverload(int foo) { return new string[]{"SO int"}; }
  717. public string[] RefArraySignatureOverload(string foo, params int[] bar) { return new string[]{"SO string params(int[])"}; }
  718. public string[] RefArraySignatureOverload(string foo, params string[] bar) { return new string[]{"SO string params(string[])"}; }
  719. public string[] RefArraySignatureOverload(string foo, int bar, int baz) { return new string[]{"SO string int int"};}
  720. public string[] RefArraySignatureOverload(params int[] args) { return new string[]{"SO params(int[])"};}
  721. public string[] RefArraySignatureOverload(ref string foo) { return new string[]{"SO ref string"}; }
  722. public string[] RefArraySignatureOverload(out int foo) { foo = 1;return new string[]{"SO out int"}; }
  723. public string[] RefArraySignatureOverload(string foo, ref string bar) { return new string[]{"SO string ref"}; }
  724. public string[] RefArraySignatureOverload(ref string foo, string bar) { return new string[]{"SO ref string"}; }
  725. public string[] RefArraySignatureOverload(out string foo, ref string bar) { foo = "out"; return new string[]{"SO out ref"}; }
  726. public int ValSignatureOverload() { Tracker = "SO void";return 1; }
  727. public int ValSignatureOverload(string foo) { Tracker = "SO string";return 1; }
  728. public int ValSignatureOverload(int foo) { Tracker = "SO int";return 1; }
  729. public int ValSignatureOverload(string foo, params int[] bar) { Tracker = "SO string params(int[])";return 1; }
  730. public int ValSignatureOverload(string foo, params string[] bar) { Tracker = "SO string params(string[])";return 1; }
  731. public int ValSignatureOverload(string foo, int bar, int baz) { Tracker = "SO string int int";return 1;}
  732. public int ValSignatureOverload(params int[] args) { Tracker = "SO params(int[])";return 1;}
  733. public int ValSignatureOverload(ref string foo) { Tracker = "SO ref string";return 1; }
  734. public int ValSignatureOverload(out int foo) { foo = 1;Tracker = "SO out int";return 1; }
  735. public int ValSignatureOverload(string foo, ref string bar) { Tracker = "SO string ref";return 1; }
  736. public int ValSignatureOverload(ref string foo, string bar) { Tracker = "SO ref string";return 1; }
  737. public int ValSignatureOverload(out string foo, ref string bar) { foo = "out"; Tracker = "SO out ref";return 1; }
  738. public int[] ValArraySignatureOverload() { Tracker = "SO void";return new int[]{1}; }
  739. public int[] ValArraySignatureOverload(string foo) { Tracker = "SO string";return new int[]{1}; }
  740. public int[] ValArraySignatureOverload(int foo) { Tracker = "SO int";return new int[]{1}; }
  741. public int[] ValArraySignatureOverload(string foo, params int[] bar) { Tracker = "SO string params(int[])";return new int[]{1}; }
  742. public int[] ValArraySignatureOverload(string foo, params string[] bar) { Tracker = "SO string params(string[])";return new int[]{1}; }
  743. public int[] ValArraySignatureOverload(string foo, int bar, int baz) { Tracker = "SO string int int";return new int[]{1};}
  744. public int[] ValArraySignatureOverload(params int[] args) { Tracker = "SO params(int[])";return new int[]{1};}
  745. public int[] ValArraySignatureOverload(ref string foo) { Tracker = "SO ref string";return new int[]{1}; }
  746. public int[] ValArraySignatureOverload(out int foo) { foo = 1;Tracker = "SO out int";return new int[]{1}; }
  747. public int[] ValArraySignatureOverload(string foo, ref string bar) { Tracker = "SO string ref";return new int[]{1}; }
  748. public int[] ValArraySignatureOverload(ref string foo, string bar) { Tracker = "SO ref string";return new int[]{1}; }
  749. public int[] ValArraySignatureOverload(out string foo, ref string bar) { foo = "out"; Tracker = "SO out ref";return new int[]{1}; }
  750. public string GenericSignatureOverload<T>() { return "SO void" ; }
  751. public string GenericSignatureOverload<T>(string foo) { return "SO string" ; }
  752. public string GenericSignatureOverload<T>(int foo) { return "SO int" ; }
  753. public string GenericSignatureOverload<T>(string foo, params int[] bar) { return "SO string params(int[])" ; }
  754. public string GenericSignatureOverload<T>(string foo, params string[] bar) { return "SO string params(string[])" ; }
  755. public string GenericSignatureOverload<T>(string foo, int bar, int baz) { return "SO string int int" ;}
  756. public string GenericSignatureOverload<T>(params int[] args) { return "SO params(int[])" ;}
  757. public string GenericSignatureOverload<T>(ref string foo) { return "SO ref string" ; }
  758. public string GenericSignatureOverload<T>(out int foo) { foo = 1;return "SO out int" ; }
  759. public string GenericSignatureOverload<T>(string foo, ref string bar) { return "SO string ref" ; }
  760. public string GenericSignatureOverload<T>(ref string foo, string bar) { return "SO ref string" ; }
  761. public string GenericSignatureOverload<T>(out string foo, ref string bar) { foo = "out"; return "SO out ref" ; }
  762. }
  763. public class DerivedFromImplementsIInterface : ImplementsIInterface {}
  764. public struct StructImplementsIInterface : IInterface { public void m() {}}
  765. public partial class ClassWithMethods {
  766. public ClassWithMethods() {
  767. Tracker = new ArrayList();
  768. }
  769. public string PublicMethod() { return "public";}
  770. protected string ProtectedMethod() { return "protected";}
  771. private string PrivateMethod() { return "private";}
  772. public ArrayList Tracker { get; set;}
  773. private static ArrayList _staticTracker = new ArrayList();
  774. public static ArrayList StaticTracker { get { return _staticTracker;}}
  775. #region private methods
  776. private string Private1Generic0Arg<T>() {
  777. return "private generic no args";
  778. }
  779. private string Private1Generic1Arg<T>(T arg0) {
  780. return Public1Generic1Arg<T>(arg0);
  781. }
  782. private string Private1Generic2Arg<T>(T arg0, string arg1) {
  783. return Public1Generic2Arg<T>(arg0, arg1);
  784. }
  785. private string Private2Generic2Arg<T, U>(T arg0, U arg1) {
  786. return Public2Generic2Arg<T, U>(arg0, arg1);
  787. }
  788. private string Private2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  789. return Public2Generic3Arg<T, U>(arg0, arg1, arg2);
  790. }
  791. private string Private3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  792. return Public3Generic3Arg<T, U, V>(arg0, arg1, arg2);
  793. }
  794. private string Private3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  795. return Public3Generic4Arg<T, U, V>(arg0, arg1, arg2, arg3);
  796. }
  797. #endregion
  798. #region protected methods
  799. protected string Protected1Generic0Arg<T>() {
  800. return "protected generic no args";
  801. }
  802. protected string Protected1Generic1Arg<T>(T arg0) {
  803. return Public1Generic1Arg<T>(arg0);
  804. }
  805. protected string Protected1Generic2Arg<T>(T arg0, string arg1) {
  806. return Public1Generic2Arg<T>(arg0, arg1);
  807. }
  808. protected string Protected2Generic2Arg<T, U>(T arg0, U arg1) {
  809. return Public2Generic2Arg<T, U>(arg0, arg1);
  810. }
  811. protected string Protected2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  812. return Public2Generic3Arg<T, U>(arg0, arg1, arg2);
  813. }
  814. protected string Protected3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  815. return Public3Generic3Arg<T, U, V>(arg0, arg1, arg2);
  816. }
  817. protected string Protected3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  818. return Public3Generic4Arg<T, U, V>(arg0, arg1, arg2, arg3);
  819. }
  820. #endregion
  821. #region public methods
  822. public string Public1Generic0Arg<T>() {
  823. return "public generic no args";
  824. }
  825. public string Public1Generic1Arg<T>(T arg0) {
  826. return arg0.ToString();
  827. }
  828. public string Public1Generic2Arg<T>(T arg0, string arg1) {
  829. return System.String.Format("{0} {1}", arg0, arg1);
  830. }
  831. public string Public2Generic2Arg<T, U>(T arg0, U arg1) {
  832. return Public1Generic2Arg<T>(arg0, arg1.ToString());
  833. }
  834. public string Public2Generic3Arg<T, U>(T arg0, U arg1, string arg2) {
  835. return System.String.Format("{0} {1} {2}", arg0, arg1, arg2);
  836. }
  837. public string Public3Generic3Arg<T, U, V>(T arg0, U arg1, V arg2) {
  838. return Public2Generic3Arg<T, U>(arg0, arg1, arg2.ToString());
  839. }
  840. public string Public3Generic4Arg<T, U, V>(T arg0, U arg1, V arg2, string arg3) {
  841. return System.String.Format("{0} {1} {2} {3}", arg0, arg1, arg2, arg3);
  842. }
  843. #endregion
  844. #region Constrained methods
  845. public T StructConstraintMethod<T>(T arg0)
  846. where T : struct {
  847. return arg0;
  848. }
  849. public T ClassConstraintMethod<T>(T arg0)
  850. where T : class {
  851. return arg0;
  852. }
  853. public T ConstructorConstraintMethod<T>()
  854. where T : new() {
  855. return new T();
  856. }
  857. public T TypeConstraintMethod<T, TBase>(T arg0)
  858. where T : TBase {
  859. return arg0;
  860. }
  861. #endregion
  862. public void Reset() { Tracker.Clear(); }
  863. public static void StaticReset() { StaticTracker.Clear(); }
  864. public int SummingMethod(int a, int b){
  865. return a+b;
  866. }
  867. // no args
  868. public string NoArg() { return "NoArg";}
  869. //primitive types
  870. // 1. Ruby native
  871. public string Int32Arg(Int32 arg) { Tracker.Add(arg); return "Int32Arg";} // Fixnum
  872. public string DoubleArg(Double arg) { Tracker.Add(arg); return "DoubleArg";} // Float
  873. public string BigIntegerArg(BigInteger arg) { Tracker.Add(arg); return "BigIntegerArg";} // Bignum
  874. public string StringArg(String arg) { Tracker.Add(arg); return "StringArg";} // String
  875. public string BooleanArg(Boolean arg) { Tracker.Add(arg); return "BooleanArg";} // TrueClass/FalseClass/NilClass
  876. public string ObjectArg(object arg) { Tracker.Add(arg); return "ObjectArg";} // Object
  877. // 2. not Ruby native
  878. // 2.1 -- signed
  879. public string SByteArg(SByte arg) { Tracker.Add(arg); return "SByteArg";}
  880. public string Int16Arg(Int16 arg) { Tracker.Add(arg); return "Int16Arg";}
  881. public string Int64Arg(Int64 arg) { Tracker.Add(arg); return "Int64Arg";}
  882. public string SingleArg(Single arg) { Tracker.Add(arg); return "SingleArg";}
  883. // 2.2 -- unsigned
  884. public string ByteArg(Byte arg) { Tracker.Add(arg); return "ByteArg";}
  885. public string UInt16Arg(UInt16 arg) { Tracker.Add(arg); return "UInt16Arg";}
  886. public string UInt32Arg(UInt32 arg) { Tracker.Add(arg); return "UInt32Arg";}
  887. public string UInt64Arg(UInt64 arg) { Tracker.Add(arg); return "UInt64Arg";}
  888. // 2.3 -- special
  889. public string CharArg(Char arg) { Tracker.Add(arg); return "CharArg";}
  890. public string DecimalArg(Decimal arg) { Tracker.Add(arg); return "DecimalArg";}
  891. //
  892. // Reference type or value type
  893. //
  894. public string IInterfaceArg(IInterface arg) { Tracker.Add(arg); return "IInterfaceArg";}
  895. public string ImplementsIInterfaceArg(ImplementsIInterface arg) { Tracker.Add(arg); return "ImplementsIInterfaceArg";}
  896. public string DerivedFromImplementsIInterfaceArg(DerivedFromImplementsIInterface arg) { Tracker.Add(arg); return "DerivedFromImplementsIInterfaceArg";}
  897. public string CStructArg(CStruct arg) { Tracker.Add(arg); return "CStructArg";}
  898. public string StructImplementsIInterfaceArg(StructImplementsIInterface arg) { Tracker.Add(arg); return "StructImplementsIInterfaceArg";}
  899. public string AbstractClassArg(AbstractClass arg) { Tracker.Add(arg); return "AbstractClassArg";}
  900. public string DerivedFromAbstractArg(DerivedFromAbstract arg) { Tracker.Add(arg); return "DerivedFromAbstractArg";}
  901. public string CustomEnumArg(CustomEnum arg) { Tracker.Add(arg); return "CustomEnumArg";}
  902. public string EnumIntArg(EnumInt arg) { Tracker.Add(arg); return "EnumIntArg";}
  903. //
  904. // array
  905. //
  906. public string Int32ArrArg(Int32[] arg) { Tracker.Add(arg); return "Int32ArrArg";}
  907. public string ObjectArrArg(object[] arg) { Tracker.Add(arg); return "ObjectArrArg";}
  908. public string IInterfaceArrArg(IInterface[] arg) { Tracker.Add(arg); return "IInterfaceArrArg";}
  909. //
  910. // params array
  911. //
  912. public string ParamsInt32ArrArg(params Int32[] arg) { Tracker.Add(arg); return "ParamsInt32ArrArg";}
  913. public string ParamsIInterfaceArrArg(params IInterface[] arg) { Tracker.Add(arg); return "ParamsIInterfaceArrArg";}
  914. public string ParamsCStructArrArg(params CStruct[] arg) { Tracker.Add(arg); return "ParamsCStructArrArg";}
  915. public string Int32ArgParamsInt32ArrArg(Int32 arg, params Int32[] arg2) { Tracker.Add(arg); return "Int32ArgParamsInt32ArrArg";}
  916. public string IInterfaceArgParamsIInterfaceArrArg(IInterface arg, params IInterface[] arg2) { Tracker.Add(arg); return "IInterfaceArgParamsIInterfaceArrArg";}
  917. //
  918. // collections/generics
  919. //
  920. public string IListOfIntArg(IList<int> arg) { Tracker.Add(arg); return "IListOfIntArg";}
  921. public string IListOfObjArg(IList<object> arg) { Tracker.Add(arg); return "IListOfObjArg";}
  922. public string ArrayArg(Array arg) { Tracker.Add(arg); return "ArrayArg";}
  923. public string IEnumerableOfIntArg(IEnumerable<int> arg) { Tracker.Add(arg); return "IEnumerableOfIntArg";}
  924. public string IEnumeratorOfIntArg(IEnumerator<int> arg) { Tracker.Add(arg); return "IEnumeratorOfIntArg";}
  925. public string IEnumerableArg(IEnumerable arg) { Tracker.Add(arg); return "IEnumerableArg";}
  926. public string IEnumeratorArg(IEnumerator arg) { Tracker.Add(arg); return "IEnumeratorArg";}
  927. public string ArrayListArg(ArrayList arg) { Tracker.Add(arg); return "ArrayListArg";}
  928. public string IDictionaryOfObjectObjectArg(IDictionary<object, object> arg) { Tracker.Add(arg); return "IDictionaryOfObjectObjectArg";}
  929. public string IDictionaryOfIntStringArg(IDictionary<int, string> arg) { Tracker.Add(arg); return "IDictionaryOfIntStringArg";}
  930. public string DictionaryOfObjectObjectArg(Dictionary<object, object> arg) { Tracker.Add(arg); return "DictionaryOfObjectObjectArg";}
  931. public string DictionaryOfIntStringArg(Dictionary<int, string> arg) { Tracker.Add(arg); return "DictionaryOfIntStringArg";}
  932. // Nullable
  933. public string NullableInt32Arg(Int32? arg) { Tracker.Add(arg); return "NullableInt32Arg";}
  934. // ByRef, Out
  935. public string RefInt32Arg(ref Int32 arg) { arg = 1; Tracker.Add(arg); return "RefInt32Arg";}
  936. public string OutInt32Arg(out Int32 arg) { arg = 2; Tracker.Add(arg); return "OutInt32Arg";}
  937. // Default Value
  938. public string DefaultInt32Arg([DefaultParameterValue(10)] Int32 arg) { Tracker.Add(arg); return "DefaultInt32Arg";}
  939. public string Int32ArgDefaultInt32Arg(Int32 arg, [DefaultParameterValue(10)] Int32 arg2) { Tracker.Add(arg); Tracker.Add(arg2); return "Int32ArgDefaultInt32Arg";}
  940. // static
  941. public static string StaticMethodNoArg() { StaticTracker.Add(null); return "StaticMethodNoArg";}
  942. public static string StaticMethodClassWithMethodsArg(ClassWithMethods arg) {StaticTracker.Add(arg); return "StaticMethodClassWithMethodsArg";}
  943. public string ClassWithMethodsArg(ClassWithMethods arg) {Tracker.Add(arg); return "ClassWithMethodsArg";}
  944. // generic method
  945. public string GenericArg<T>(T arg) {Tracker.Add(arg); return String.Format("GenericArg[{0}]", typeof(T));}
  946. // out on non-byref
  947. public string OutNonByRefInt32Arg([Out] int arg) {arg = 1; Tracker.Add(arg); return "OutNonByRefInt32Arg";}
  948. // what does passing in nil mean?
  949. public string ParamsIInterfaceArrTestArg(params IInterface[] args) { Tracker.Add(args == null); Tracker.Add(args); return "ParamsIInterfaceArrTestArg";}
  950. // ref, out, ...
  951. public string RefOutInt32Args(ref int arg1, out int arg2, int arg3) {arg1=arg2=arg3; Tracker.Add(arg1); Tracker.Add(arg2); Tracker.Add(arg3); return "RefOutInt32Args";}
  952. public string RefInt32OutArgs(ref int arg1, int arg2, out int arg3) {arg3=arg1=arg2; Tracker.Add(arg1); Tracker.Add(arg2); Tracker.Add(arg3); return "RefInt32OutArgs";}
  953. public string Int32RefOutArgs(int arg1, ref int arg2, out int arg3) {arg2=arg3=arg1; Tracker.Add(arg1); Tracker.Add(arg2); Tracker.Add(arg3); return "Int32RefOutArgs";}
  954. // eight args
  955. public string EightArgs(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8) {
  956. Tracker.Add(arg1);
  957. Tracker.Add(arg2);
  958. Tracker.Add(arg3);
  959. Tracker.Add(arg4);
  960. Tracker.Add(arg5);
  961. Tracker.Add(arg6);
  962. Tracker.Add(arg7);
  963. Tracker.Add(arg8);
  964. return "EightArgs";
  965. }
  966. public string IDictionaryOfIntIntArg(IDictionary<int, int> arg){ Tracker.Add(arg); return "IDictionaryOfIntIntArg";}
  967. public string HashtableArg(Hashtable arg) { Tracker.Add(arg); return "HashtableArg";}
  968. public string ListOfIntArg(List<int> arg) { Tracker.Add(arg); return "ListOfIntArg";}
  969. // iterator support
  970. public string IEnumerableIteratingArg(IEnumerable arg) {
  971. IEnumerator ienum = arg.GetEnumerator();
  972. while (ienum.MoveNext())
  973. Tracker.Add(ienum.Current);
  974. return "IEnumerableIteratingArg";
  975. }
  976. public string IEnumeratorIteratingArg(IEnumerator arg) {
  977. while (arg.MoveNext())
  978. Tracker.Add(arg.Current);
  979. return "IEnumeratorIteratingArg";
  980. }
  981. public string IListArg(IList arg) { Tracker.Add(arg); Tracker.Add(arg.Count); return "IListArg";}
  982. public string IEnumerableOfCharIteratingArg(IEnumerable<Char> arg) {
  983. IEnumerator ienum = arg.GetEnumerator();
  984. while (ienum.MoveNext())
  985. Tracker.Add(ienum.Current);
  986. return "IEnumerableOfCharIteratingArg";
  987. }
  988. public string IEnumeratorOfCharIteratingArg(IEnumerator<Char> arg) {
  989. while (arg.MoveNext())
  990. Tracker.Add(arg.Current);
  991. return "IEnumeratorOfCharIteratingArg";
  992. }
  993. public string IListOfCharArg(IList<Char> arg) { Tracker.Add(arg); Tracker.Add(arg.Count); return "IListOfCharArg";}
  994. public string IEnumerableOfIntIteratingArg(IEnumerable<int> arg) {
  995. IEnumerator ienum = arg.GetEnumerator();
  996. while (ienum.MoveNext())
  997. Tracker.Add(ienum.Current);
  998. return "IEnumerableOfIntIteratingArg";
  999. }
  1000. public string IEnumeratorOfIntIteratingArg(IEnumerator<int> arg) {
  1001. while (arg.MoveNext())
  1002. Tracker.Add(arg.Current);
  1003. return "IEnumeratorOfIntIteratingArg";
  1004. }
  1005. public string IListOfIntArg2(IList<int> arg) { Tracker.Add(arg); Tracker.Add(arg.Count); return "IListOfIntArg2";}
  1006. // delegate
  1007. public string DelegateArg(Delegate arg) {
  1008. IntIntDelegate d = (IntIntDelegate)arg;
  1009. Tracker.Add(d(10));
  1010. return "DelegateArg";
  1011. }
  1012. public string IntIntDelegateArg(IntIntDelegate arg) { Tracker.Add(arg(10)); return "IntIntDelegateArg";}
  1013. // byte array
  1014. public string RefByteArrArg(ref Byte[] arg) { Tracker.Add(arg); return "RefByteArrArg";}
  1015. public string ByteArrRefByteArrArg(Byte[] input, ref Byte[] arg) { arg = input; Tracker.Add(arg); return "ByteArrRefByteArrArg";}
  1016. // keywords
  1017. public string KeywordsArgs(int arg1, object arg2, ref string arg3) { arg3 = arg3.ToUpper(); Tracker.Add(arg3); return "KeywordsArgs";}
  1018. //more ref/out
  1019. public string RefStructImplementsIInterfaceArg(ref StructImplementsIInterface arg) { arg = new StructImplementsIInterface(); Tracker.Add(arg); return "RefStructImplementsIInterfaceArg";}
  1020. public string OutStructImplementsIInterfaceArg(out StructImplementsIInterface arg) { arg = new StructImplementsIInterface(); Tracker.Add(arg); return "OutStructImplementsIInterfaceArg";}
  1021. public string RefImplementsIInterfaceArg(ref ImplementsIInterface arg) { Tracker.Add(arg); return "RefImplementsIInterfaceArg";}
  1022. public string OutImplementsIInterfaceArg(out ImplementsIInterface arg) { arg = new ImplementsIInterface(); Tracker.Add(arg); return "OutImplementsIInterfaceArg";}
  1023. public string RefBooleanArg(ref Boolean arg) { Tracker.Add(arg); return "RefBooleanArg";}
  1024. public string OutBooleanArg(out Boolean arg) { arg = true; Tracker.Add(arg); return "OutBooleanArg";}
  1025. public string RefInt32Int32OutInt32Arg(ref int arg1, int arg2, out int arg3) {
  1026. arg3 = arg1 + arg2;
  1027. arg1 = 100;
  1028. Tracker.Add(arg1);
  1029. Tracker.Add(arg2);
  1030. Tracker.Add(arg3);
  1031. return "RefInt32Int32OutInt32Arg";
  1032. }
  1033. }
  1034. public partial class GenericClassWithMethods<K> {
  1035. public ArrayList Tracker { get; set;}
  1036. public GenericClassWithMethods() {
  1037. Tracker = new ArrayList();
  1038. }
  1039. public void Reset() { Tracker.Clear();}
  1040. public string GenericArg(K arg) { Tracker.Add(arg); return "GenericArg";}
  1041. }
  1042. public delegate int IntIntDelegate(int arg);
  1043. public class VirtualMethodBaseClass {
  1044. public virtual string VirtualMethod() { return "virtual"; }
  1045. }
  1046. public class VirtualMethodOverrideNew : VirtualMethodBaseClass {
  1047. new public virtual string VirtualMethod() { return "new"; }
  1048. }
  1049. public class VirtualMethodOverrideOverride : VirtualMethodBaseClass {
  1050. public override string VirtualMethod() { return "override"; }
  1051. }
  1052. public class ClassWithNullableMethods {
  1053. public ClassWithNullableMethods() {
  1054. Tracker = new ArrayList();
  1055. }
  1056. public ArrayList Tracker { get; set;}
  1057. public void Reset() { Tracker.Clear(); }
  1058. public Int16? Int16NullableProperty {get; set;}
  1059. public Int32? Int32NullableProperty {get; set;}
  1060. public Int64? Int64NullableProperty {get; set;}
  1061. public UInt16? UInt16NullableProperty {get; set;}
  1062. public UInt32? UInt32NullableProperty {get; set;}
  1063. public UInt64? UInt64NullableProperty {get; set;}
  1064. public Byte? ByteNullableProperty {get; set;}
  1065. public SByte? SByteNullableProperty {get; set;}
  1066. public Decimal? DecimalNullableProperty {get; set;}
  1067. public Single? SingleNullableProperty {get; set;}
  1068. public Double? DoubleNullableProperty {get; set;}
  1069. public Char? CharNullableProperty {get; set;}
  1070. public CustomEnum? CustomEnumNullableProperty {get; set;}
  1071. public Boolean? BooleanNullableProperty {get; set;}
  1072. public string Int16NullableArg(Int16? arg) { Tracker.Add(arg); return "Int16NullableArg"; }
  1073. public string Int32NullableArg(Int32? arg) { Tracker.Add(arg); return "Int32NullableArg"; }
  1074. public string Int64NullableArg(Int64? arg) { Tracker.Add(arg); return "Int64NullableArg"; }
  1075. public string UInt16NullableArg(UInt16? arg) { Tracker.Add(arg); return "UInt16NullableArg"; }
  1076. public string UInt32NullableArg(UInt32? arg) { Tracker.Add(arg); return "UInt32NullableArg"; }
  1077. public string UInt64NullableArg(UInt64? arg) { Tracker.Add(arg); return "UInt64NullableArg"; }
  1078. public string ByteNullableArg(Byte? arg) { Tracker.Add(arg); return "ByteNullableArg"; }
  1079. public string SByteNullableArg(SByte? arg) { Tracker.Add(arg); return "SByteNullableArg"; }
  1080. public string DecimalNullableArg(Decimal? arg) { Tracker.Add(arg); return "DecimalNullableArg"; }
  1081. public string SingleNullableArg(Single? arg) { Tracker.Add(arg); return "SingleNullableArg"; }
  1082. public string DoubleNullableArg(Double? arg) { Tracker.Add(arg); return "DoubleNullableArg"; }
  1083. public string CharNullableArg(Char? arg) { Tracker.Add(arg); return "CharNullableArg"; }
  1084. public string CustomEnumNullableArg(CustomEnum? arg) { Tracker.Add(arg); return "CustomEnumNullableArg"; }
  1085. public string BooleanNullableArg(Boolean? arg) { Tracker.Add(arg); return "BooleanNullableArg"; }
  1086. }
  1087. public class StaticClassWithNullableMethods {
  1088. private static ArrayList _tracker = new ArrayList();
  1089. public static ArrayList Tracker { get { return _tracker;}}
  1090. public static void Reset() {
  1091. Tracker.Clear();
  1092. StaticInt16NullableProperty = null;
  1093. StaticInt32NullableProperty = null;
  1094. StaticInt64NullableProperty = null;
  1095. StaticUInt16NullableProperty = null;
  1096. StaticUInt32NullableProperty = null;
  1097. StaticUInt64NullableProperty = null;
  1098. StaticByteNullableProperty = null;
  1099. StaticSByteNullableProperty = null;
  1100. StaticDecimalNullableProperty = null;
  1101. StaticSingleNullableProperty = null;
  1102. StaticDoubleNullableProperty = null;
  1103. StaticCharNullableProperty = null;
  1104. StaticCustomEnumNullableProperty = null;
  1105. StaticBooleanNullableProperty = null;
  1106. }
  1107. public static Int16? StaticInt16NullableProperty {get; set;}
  1108. public static Int32? StaticInt32NullableProperty {get; set;}
  1109. public static Int64? StaticInt64NullableProperty {get; set;}
  1110. public static UInt16? StaticUInt16NullableProperty {get; set;}
  1111. public static UInt32? StaticUInt32NullableProperty {get; set;}
  1112. public static UInt64? StaticUInt64NullableProperty {get; set;}
  1113. public static Byte? StaticByteNullableProperty {get; set;}
  1114. p

Large files files are truncated, but you can click here to view the full file