static void Main(string[] args) { SetArray sa1 = new SetArray(1000001, "Oleg", "NPD", 1, 2, 3); SetArray sa2 = new SetArray(1111100, "Kate", "Kolesnik", 3, 4, 5); SetArray sa3 = new SetArray(); sa3 = sa1 + sa2; sa3++; foreach (int item in sa3.Set) { Console.WriteLine(item); } if (sa1 <= sa3) { Console.WriteLine("Первое множество по мощности больше либо равно объединенному первому множеству со вторым"); } else { Console.WriteLine("Первое множество по мощности меньше либо равно объединенному первому множеству со вторым"); } Console.WriteLine(sa1 % 2 + " - элемент под индексом 2 в sa1"); Console.WriteLine(1 * sa1 + " - количество элементов в sa1"); Console.WriteLine("Информация о sa1: " + sa1.ToString()); SetArray.Date dt = new SetArray.Date(1999, 12, 5); Console.WriteLine("Max in sa1: " + MathOperation.GetMax(sa1)); Console.WriteLine("Min in sa1: " + MathOperation.GetMin(sa1)); Console.WriteLine("Count of sa1: " + MathOperation.GetCount(sa1)); Console.WriteLine("abcs".GetCipher() + " - шифр строки \"abcs\""); Console.WriteLine("sa1 отсортирован по возрастанию - " + sa1.IsOrdered()); Console.ReadKey(); }
static void PrintArray(List <string> arr, SetArray deleFunc) //리스트의 요소를 출력하는 메서드 { Console.WriteLine("=== 요소 출력 ==="); for (int i = 0; i < deleFunc(arr).Count; i++) //delegate를 활용해서 리스트에 요소를 입력 { Console.WriteLine("Array({0}) = {1}", i, arr[i]); //입력된 요소를 출력 } }
public static List <T> operator +(SetArray <T> setarr1, SetArray <T> setarr2) //перегрузка +, чтобы объёдинял множества { SetArray <T> setarr3 = new SetArray <T>(); foreach (var x in setarr1.Set) { setarr3.Set.Add(x); } foreach (var x in setarr2.Set) { if (!setarr3.Set.Contains(x)) { setarr3.Set.Add(x); } } return(setarr3.Set); }
public override void OnInspectorGUI() { SetArray SA = (SetArray)target; //public int rowCount = 5; //public GameObject[] go; SA.rowCount = EditorGUILayout.IntField("Row Count", SA.rowCount); if (GUILayout.Button("StartSort")) { SA.StartSort(); } GUILayout.Space(10); m_Property = m_Object.FindProperty("go"); EditorGUILayout.PropertyField(m_Property, new GUIContent("Object"), true); m_Object.ApplyModifiedProperties(); }
static void Main(string[] args) { try { SetArray <int> sa1 = new SetArray <int>(1000001, "Oleg", "NPD", 1, 2, 3); SetArray <int> sa2 = new SetArray <int>(1111100, "Kate", "Kolesnik", 3, 4, 5); SetArray <int> sa3 = new SetArray <int>(); SetArray <string> sa4 = new SetArray <string>(1000111, "Nick", "Hyper", "abc", "def", "ghi"); SetArray <string> sa5 = new SetArray <string>(1001011, "Jim", "Kelmi", "cba", "def"); SetArray <float> sa6 = new SetArray <float>(1101101, "John", "Klimbing", (float)2.2, 1212, 9, (float)3189.31, 213); sa3.Set = sa1 + sa2; foreach (var item in sa3.Set) { Console.WriteLine(item); } if (sa1 <= sa3) { Console.WriteLine("Первое множество по мощности больше либо равно объединенному первому множеству со вторым"); } else { Console.WriteLine("Первое множество по мощности меньше либо равно объединенному первому множеству со вторым"); } Console.WriteLine(sa1 % 2 + " - элемент под индексом 2 в sa1"); Console.WriteLine(1 * sa1 + " - количество элементов в sa1"); Console.WriteLine("Информация о sa1: " + sa1.ToString()); sa5.Set = sa5 + sa4; Console.WriteLine("Элементы sa4 + sa5 :"); foreach (var item in sa5.Set) { Console.WriteLine(item); } sa4.add("eeeeeee"); sa5.delete("abc"); Console.WriteLine("Информация о sa5:"); sa5.show(); Console.WriteLine("Информация о sa6:"); sa6.show(); Question q1 = new Question(); q1.Text = "Oh, it's question"; SetArray <Question> sa7 = new SetArray <Question>(1110000, "Katrin", "Zippo", q1); Console.WriteLine("Информация о sa7:"); sa7.show(); } catch (QuestionException e) { Console.WriteLine(e); } catch (Exception e) { Console.WriteLine(e); } finally { Console.WriteLine("Программа завершена!"); } Console.ReadKey(); }
public static void Attach(int pid, string path, string arguments = "") { IntPtr vm = IntPtr.Zero, env = IntPtr.Zero; JavaVMInitArgs args = new JavaVMInitArgs(); args.version = 0x00010008; args.nOptions = 0; int result = JNI_CreateJavaVM(ref vm, ref env, ref args); Console.WriteLine("result " + result); IntPtr real = Marshal.ReadIntPtr(env); IntPtr function = Marshal.ReadIntPtr(real, 668); IntPtr functionL = Marshal.ReadIntPtr(real, 656); IntPtr realVmStruct = Marshal.ReadIntPtr(vm); StringDelegate newStringUTF = Marshal.GetDelegateForFunctionPointer <StringDelegate>(function); GetStringLength stringLen = Marshal.GetDelegateForFunctionPointer <GetStringLength>(functionL); ExceptionCheck checkException = Marshal.GetDelegateForFunctionPointer <ExceptionCheck>(Marshal.ReadIntPtr(real, 912)); ExceptionDescribe printException = Marshal.GetDelegateForFunctionPointer <ExceptionDescribe>(Marshal.ReadIntPtr(real, 64)); NewObjectArray newObjectArray = Marshal.GetDelegateForFunctionPointer <NewObjectArray>(Marshal.ReadIntPtr(real, 688)); FindClass findClass = Marshal.GetDelegateForFunctionPointer <FindClass>(Marshal.ReadIntPtr(real, 24)); SetArray setArray = Marshal.GetDelegateForFunctionPointer <SetArray>(Marshal.ReadIntPtr(real, 696)); DestroyJavaVM destroyVM = Marshal.GetDelegateForFunctionPointer <DestroyJavaVM>(Marshal.ReadIntPtr(realVmStruct, 12)); //attach api start Java_sun_tools_attach_WindowsVirtualMachine_init(env, IntPtr.Zero); IntPtr stub = Java_sun_tools_attach_WindowsVirtualMachine_generateStub(env, IntPtr.Zero); long process = Java_sun_tools_attach_WindowsVirtualMachine_openProcess(env, IntPtr.Zero, pid); Console.WriteLine("exception " + checkException(env)); IntPtr cmd = newStringUTF(env, "load"); IntPtr pipeName = newStringUTF(env, "\\\\.\\pipe\\javatool22"); IntPtr pathJStr = newStringUTF(env, path); IntPtr unknownBoolean = newStringUTF(env, "true"); IntPtr argumentsJ = newStringUTF(env, arguments); Console.WriteLine("exception " + checkException(env)); IntPtr clazz = findClass(env, "java/lang/String"); IntPtr array = newObjectArray(env, 3, clazz, IntPtr.Zero); setArray(env, array, 0, pathJStr); setArray(env, array, 1, unknownBoolean); setArray(env, array, 2, argumentsJ); Java_sun_tools_attach_WindowsVirtualMachine_enqueue(env, IntPtr.Zero, process, stub, cmd, pipeName, array); Console.WriteLine("exception " + checkException(env)); printException(env); /* * * var pipe = new NamedPipeServerStream("javatool22"); * pipe.WaitForConnection(); * BinaryReader reader = new BinaryReader(pipe); * char callback = reader.ReadChar(); * * * Console.WriteLine("pipe result " + callback); */ Java_sun_tools_attach_WindowsVirtualMachine_closeProcess(env, IntPtr.Zero, process); int rr = destroyVM(vm); Console.WriteLine("destroyed vm: " + result); }