public static void Emit(this ILGenerator il, OpCode opcode, IFieldElement el) { var m = el as IMemberInfoSource; var fieldInfo = m.MemberInfo as FieldInfo; il.Emit(opcode, fieldInfo); }
private void CreateLevels() { string levelsString = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "levels.txt")); try { var levels = JSONNode.Parse(levelsString).AsArray; foreach (JSONNode level in levels) { var id = level["id"].AsInt; var currentLevel = new IFieldElement[width - 2, height - 2]; int y = 0; foreach (JSONNode imageStr in level["level"].AsArray) { int x = 0; foreach (var imagePxl in (string)imageStr) { if (imagePxl == '1') { currentLevel[x, y] = new Wall(new Vector2i(x + 1, y + 1)); } x++; } y++; } Levels.Add(id, currentLevel); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void Delete(IFieldElement <string> val) { var sf = m_subFields.Single(f => f == val); m_subFields.Remove(sf); Destroy(sf.GameObject); }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar) { ComplexNumber ComplexNumber = Scalar as ComplexNumber; Complex d; if (ComplexNumber == null) { DoubleNumber DoubleNumber = Scalar as DoubleNumber; if (DoubleNumber == null) { return(null); } else { d = new Complex(DoubleNumber.Value, 0); } } else { d = ComplexNumber.Value; } int i; Complex[] Values = this.Values; Complex[] v = new Complex[this.dimension]; for (i = 0; i < this.dimension; i++) { v[i] = d * Values[i]; } return(new ComplexVector(v)); }
private void DrawRectNearElement(Graphics g, IFieldElement element) { var pos = element.ScaledLocation; var size = element.ScaledSize; var rect = new Rectangle(pos.X - 2, pos.Y - 2, size.Width + 3, size.Height + 3); g.DrawRectangle(rectHighlighter, rect); }
public Folder(string name, string path, IFieldElement prev) { Name = name; Path = path; Type = "<Папка>"; Prev = prev; Next = null; }
public Disk(string name, string path, DriveType diskType, IFieldElement prev) { Name = name; Path = path; DiskType = diskType; Type = GetDiskType(diskType); Prev = prev; Next = null; }
public File(string name, string path, string type, long size, IFieldElement prev) { Name = name; Path = path; Type = type; Size = size; Prev = prev; Next = null; }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar) { LinkedList <IElement> Elements = new LinkedList <IElement>(); foreach (IElement Element in this.elements) { Elements.AddLast(Operators.Arithmetics.Multiply.EvaluateMultiplication(Scalar, Element, null)); } return(new ObjectVector(Elements)); }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public override IModuleElement MultiplyScalar(IRingElement Scalar) { IFieldElement FieldElement = Scalar as IFieldElement; if (FieldElement is null) { return(null); } else { return(this.MultiplyScalar(FieldElement)); } }
private void OnFocusChanged(IFieldElement lastFocus, IFieldElement currentFocus) { if (currentFocus != null) { DrawRectNearElement(this.CreateGraphics(), currentFocus); } if (lastFocus != null) { var rect = new Rectangle(lastFocus.ScaledLocation.X - 2, lastFocus.ScaledLocation.Y - 2, lastFocus.ScaledSize.Width + 4, lastFocus.ScaledSize.Height + 4); Invalidate(rect); } }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar) { if (!(Scalar is DoubleNumber DoubleNumber)) { return(null); } double d = DoubleNumber.Value; int i; double[] Values = this.Values; double[] v = new double[this.dimension]; for (i = 0; i < this.dimension; i++) { v[i] = d * Values[i]; } return(new DoubleVector(v)); }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar) { BooleanValue BooleanValue = Scalar as BooleanValue; if (BooleanValue is null) { return(null); } bool d = BooleanValue.Value; int i; bool[] Values = this.Values; bool[] v = new bool[this.dimension]; for (i = 0; i < this.dimension; i++) { v[i] = d && Values[i]; } return(new BooleanVector(v)); }
public override void PreDefine(ITypeDesigner t) { if (_handlerType == null) { _handlerType = _eventArgsType == typeof(EventArgs) ? typeof(EventHandler) : typeof(EventHandler <>).MakeGenericType(_eventArgsType); } if (_bPrivateField) { _field = t.Field("_" + _name, _handlerType); _fnAdd = (il) => { il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldfld, _field); il.Emit(OpCodes.Ldarg_1); il.Emit(OpCodes.Call, typeof(Delegate).GetMethod("Combine", new[] { typeof(Delegate), typeof(Delegate) }, null)); il.Emit(OpCodes.Castclass, _handlerType); il.Emit(OpCodes.Stfld, _field); il.Emit(OpCodes.Ret); }; _fnRemove = (il) => { il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldfld, _field); il.Emit(OpCodes.Ldarg_1); il.Emit(OpCodes.Call, typeof(Delegate).GetMethod("Remove", new[] { typeof(Delegate), typeof(Delegate) }, null)); il.Emit(OpCodes.Castclass, _handlerType); il.Emit(OpCodes.Stfld, _field); il.Emit(OpCodes.Ret); }; } }
protected virtual void SetupField(IFieldElement field, PropertyModel property) { field.BindValue(property); //TODO }
public static bool CanAnalyseAsDisposable(IFieldElement field) { if (field == null) return false; return !field.IsAspxTag && !field.IsRunAtServer; }
private static bool IsDisposed(ScopeResolveResult resolveResult, IClassElement scope, IFieldElement field) { if (scope == null || field == null) return false; IElementCollection references = field.FindAllReferences(scope); foreach (IElement reference in references) { IElement parent = reference.Parent; if (parent != null) { IWithSource withSource = parent as IWithSource; if (withSource != null) { if (withSource.Source == reference) { if (parent.Name == STR_Dispose) { IMethodElement parentMethod = reference.ParentMethod; if (parentMethod != null && parentMethod.Name == STR_Dispose) return true; } } } // B188310 if (IsAddedToControls(parent)) return true; if (ComponentsInstancePassedIntoConstructor(resolveResult, parent)) return true; if (PassedIntoDifferentDisposeMethod(resolveResult, parent, reference)) return true; } } return false; }
/* * Спробувати отримати список папок і файлів у OpenedElement. * Якщо поточний шлях не диск, то першою папкою є "..". * Спершу виводиться список папок, далі файлів. * У разі помилки зчитування список елементів не змінюється. */ public bool UpdateField(IFieldElement openedElement) { if (openedElement == null) { MessageView.FileFolderGettingError(); return false; } try { List<IFieldElement> fieldElementList = new List<IFieldElement>(); if (!(openedElement is Disk)) { if (String.Compare(Directory.GetParent(openedElement.Path).Root.FullName, Directory.GetParent(openedElement.Path).FullName) != 0) fieldElementList.Add(new Folder("..", Directory.GetParent(openedElement.Path).FullName, openedElement)); else fieldElementList.Add(new Disk("..", Directory.GetParent(openedElement.Path).FullName, new DriveInfo(Directory.GetParent(openedElement.Path).FullName).DriveType, openedElement)); } DirectoryInfo openedElementInfo = new DirectoryInfo(openedElement.Path); //Отримуємо список папок DirectoryInfo[] fieldDirectories = openedElementInfo.GetDirectories(); foreach (DirectoryInfo fieldDirectory in fieldDirectories) fieldElementList.Add(new Folder(fieldDirectory.Name, fieldDirectory.FullName, openedElement)); //Отримуємо список файлів FileInfo[] fieldFiles = openedElementInfo.GetFiles(); foreach (FileInfo fieldFile in fieldFiles) { //WshShell shell = new WshShell(); //WshShortcut shortcut = shell.CreateShortcut(fieldFile.FullName) as WshShortcut; //var temp = shortcut.TargetPath; //Console.WriteLine(shortcut.TargetPath); fieldElementList.Add(new File(Path.GetFileNameWithoutExtension(fieldFile.Name), fieldFile.FullName, fieldFile.Extension, fieldFile.Length, openedElement)); } FieldElementList = fieldElementList; } catch { MessageView.FileFolderGettingError(); return false; } return true; }
/* * Спробувати змінити диск, тобто оновити змінну OpenedElement. * У разі неможливості зміни диску буде показане відповідне повідомлення, * стан змінної OpenedElement зберігається. */ public bool SetDisk(List<Disk> disks) { IFieldElement openedElement = null; foreach(Disk disk in disks) { DriveInfo drive = new DriveInfo(disk.Name); if (drive.IsReady) { openedElement = new Disk(drive.Name, drive.Name, drive.DriveType, openedElement); break; } } if (openedElement == null) { DialogResult msgboxID = MessageView.NoAvaliableDisksMessage(); if (msgboxID == DialogResult.Retry) return SetDisk(disks); return false; } if (UpdateField(openedElement)) { OpenedElement = openedElement; return true; } return false; }
/// <summary> /// Performs a scalar multiplication, if possible. /// </summary> /// <param name="VectorSpaceElement">Vector Space element.</param> /// <param name="Scalar">Scalar element.</param> /// <returns>Result, if understood, null otherwise.</returns> public virtual IVectorSpaceElement MultiplyScalar(IFieldElement Scalar, IVectorSpaceElement VectorSpaceElement) { return(VectorSpaceElement.MultiplyScalar(Scalar)); }
public void GoPath(string path) { if (string.IsNullOrEmpty(path) || OpenedElement.Path == path) return; if(Path.GetPathRoot(path) == path && (new DriveInfo(path).IsReady)) { var openedDriveInfo = new DriveInfo(path); var openedElement = new Disk(openedDriveInfo.Name, openedDriveInfo.Name, openedDriveInfo.DriveType, OpenedElement); if (UpdateField(openedElement)) OpenedElement = openedElement; } else if (Directory.Exists(path)) { var openedDirectoryInfo = new DirectoryInfo(path); var openedElement = new Folder(openedDirectoryInfo.Name, openedDirectoryInfo.FullName, OpenedElement); if (UpdateField(openedElement)) OpenedElement = openedElement; } else if(System.IO.File.Exists(path)) { var openedFileInfo = new FileInfo(path); var openedElement = new File( openedFileInfo.Name, openedFileInfo.FullName, openedFileInfo.Extension, openedFileInfo.Length, OpenedElement); if (UpdateField(openedElement)) OpenedElement = openedElement; } }
public bool GoForward() { if (OpenedElement.Next != null) { OpenedElement.Next.Prev = OpenedElement; OpenedElement = OpenedElement.Next; return true; } return false; }
public bool GoBack() { if (OpenedElement.Prev != null) { OpenedElement.Prev.Next = OpenedElement; OpenedElement = OpenedElement.Prev; return true; } return false; }
public static string GetValueOrDefault(this IFieldElement fieldEle) { return(fieldEle == null ? null : fieldEle.Value); }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar) { return(null); }
IPropertyElement IPropertyElement.UseBackingField(IFieldElement backingField) { _backingField = backingField; return(this); }
/* * Повертає значення true, якщо потрібно оновити поле. */ public bool OpenElement(int itemIndex) { bool needToUpdateField = FieldElementList[itemIndex].Open(); if (needToUpdateField) { IFieldElement openedElement = FieldElementList[itemIndex]; openedElement.Prev = OpenedElement; if (UpdateField(openedElement)) { OpenedElement = openedElement; return true; } } return false; }
public void AddElement(IFieldElement element) { Elements.Add(element); }
/// <summary> /// Tries to multiply a scalar to the current element. /// </summary> /// <param name="Scalar">Scalar to multiply.</param> /// <returns>Result, if understood, null otherwise.</returns> public abstract IVectorSpaceElement MultiplyScalar(IFieldElement Scalar);
public void RemoveElement(IFieldElement element) { Elements.Remove(element); }
IPropertyElement IPropertyElement.EmitSet(Action <ILGenerator> fn) { _fnSet = fn; _backingField = null; return(this); }