// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // using System; struct Gen { public T Field; public T[] TArray; public T Property { get { return Field; } set { Field = value; } } public T this[int i] { get { return TArray[i]; } set { TArray[i] = value; } } public T Method(T t) { return t; } } public class Test { public static int Main() { int ret = 100; Gen GenInt = new Gen(); GenInt.Field = 5; if (GenInt.Field != 5) { Console.WriteLine("Failed Field Access for Gen"); ret = 1; } GenInt.Property = 10; if (GenInt.Property != 10) { Console.WriteLine("Failed Property Access for Gen"); ret = 1; } GenInt.TArray = new int[10]; if (GenInt.TArray.Length != 10) { Console.WriteLine("Failed T Array Creation for Gen"); ret = 1; } for (int i = 0; (i < 10); i++) { GenInt[i] = 15; if (GenInt[i] != 15) { Console.WriteLine("Failed Indexer Access for Gen"); ret = 1; } } if (GenInt.Method(20) != 20) { Console.WriteLine("Failed Method Access for Gen"); ret = 1; } Gen GenString = new Gen(); GenString.Field = "Field"; if (GenString.Field != "Field") { Console.WriteLine("Failed Field Access for Gen"); ret = 1; } GenString.Property = "Property"; if (GenString.Property != "Property") { Console.WriteLine("Failed Property Access for Gen"); ret = 1; } GenString.TArray = new String[10]; if (GenString.TArray.Length != 10) { Console.WriteLine("Failed T Array Creation for Gen"); ret = 1; } for (int i = 0; (i < 10); i++) { GenString[i] = "ArrayString"; if (GenString[i] != "ArrayString") { Console.WriteLine("Failed Indexer Access for Gen"); ret = 1; } } if (GenString.Method("Method") != "Method") { Console.WriteLine("Failed Method Access for Gen"); ret = 1; } return ret; } }