在运行时用事件textchanged禁用/启用applicationbar按钮(Windows Phone)。
在代码的这一部分中是事件文本划分以启用te Applicationbar中的按钮. c#: private void Textbox_TextChanged(object sender, EventArgs e) { ApplicationBarIconButton btn_guardar = ApplicationBar.Buttons[0] as applicationBarIconButton; if (!string.IsNullOrEmpty(txt_nom_usuario.Text) && !string.IsNullOrEmpty(txt_edad_usuario.Text) && !string.IsNullOrEmpty(txt_peso_usuario.Text)) { btn_guardar.IsEnabled = true; } else btn_guardar.IsEnable
174 2024-04-26
编程技术问答社区
为什么我们不能将这些对象序列化?
为什么我们不能将对象序列化为随机访问文件?另一方面,我们可以将对象序列化为顺序访问文件? "" C#不提供在运行时获得对象大小的手段.这意味着, 如果我们将课程序列化,则无法保证固定长度的记录大小""(从我阅读的书中). 因此,我们无法读取随机访问文件,因为我们不知道文件中的每个对象大小,所以我们如何寻找? 解决方案 标记SerializableAttribute属性的任何对象都可以序列化(在大多数情况下).序列化的结果始终针对流,这很可能是文件输出流. 您是否在问为什么不能部分地进行对象图? .NET序列化[de]序列化完整的对象图.否则,您将必须转向其他序列化格式,或编写自己的序列化. 要直接随机访问文件,您必须使用支持寻求的流的流. 编辑: 从序列化中寻求所得的流没有实际目的 - 只有序列化格式知道那里的内容,并且应始终在流的开始时喂食. 将数据持续到其他结构中;在两个阶段的过程中进行:首先,将序列化字节定为[即记忆支持的]流,您可以从
14 2024-04-26
编程技术问答社区
LINQ SqlQuery<T>,随机选择字段的数量
我正在使用linq sqlquery 从数据库中进行运行时间SQL查询并从数据库中获取数据 SchoolSoulLibrary.SchoolSoulDataEntities ss = new SchoolSoulLibrary.SchoolSoulDataEntities(); string query1; var li = ss.Database.SqlQuery(query1).ToList(); Masterbank类是 public Partial class MasterBank { public MasterBank() { } public decimal BankId { get; set; } public string BankName { get; set; } public Nullable UserId
20 2024-04-26
编程技术问答社区
在运行时创建(=编译)实现已知接口的类
是否可以通过在运行时编译的代码段来提供接口的实现? 以下内容不起作用(安全类型铸件返回" null"): 完整的控制台应用程序: using System; using System.Collections.Generic; namespace Foo { using System.CodeDom.Compiler; using Microsoft.CSharp; class Program { static void Main(string[] args) { // code snippet to compile: string source =@"namespace Foo { public class Test:ITest { public void Write() {
22 2024-04-26
编程技术问答社区
谁能向我解释一下装配类的功能?
我想在运行时加载和创建组件,有人告诉我使用namespace system.reflection.sembly and system.reflection.emit. 我发现的仅参考是在MSDN上,但是当您不知道从哪里以及如何开始时,使用它并不那么好.我已经搜索过搜索,但我没有找到任何有用的教程/示例/参考. 有人可以向我解释功能或给我一些示例/教程? 解决方案 http://msdn.microsoft/library/saf5ce06.aspx public static void CompileScript(string source) { CompilerParameters parms = new CompilerParameters(); parms.GenerateExecutable = true; parms.GenerateInMemory = true
40 2024-04-26
编程技术问答社区
用非静态路径从DLL调用函数
我有一个dll,我需要从. 中访问方法 在这样的大多数情况下,我只是使用[dllimport]来访问非托管组件的方法,但是在这种情况下,问题在于它需要在实例化时间内通往DLL的路径,因此一个恒定的字符串. 这个特定的DLL是使用我的应用程序安装的DLL,我不能保证该程序安装后它将在哪里(我宁愿不要将其放在静态的静态位置,例如%SystemRoot%). 因此,在C#中有一种方法可以在运行时声明并使用DLL的方法? 任何想法或建议都将不胜感激! 解决方案 这有点黑客,但是由于您说可以在运行时找到DLL的路径,为什么不在使用任何功能之前将其复制到当前的工作目录呢?这样,DLL将存在于您的EXE旁边,并且将通过LoadLibrary找到.您的dllimport中无需任何其他路径. 使用动态路径中使用方法的唯一其他方法是这样做: 1)对 3)找到所需的函数(getProcaddress) 4)将指针施放为委托元帅. 5)调用它. 当然,您需要以这种方
26 2024-04-25
编程技术问答社区
Roslyn VSIX扩展因在修复器中添加功能而爆炸了
我一直在处理我要假设的问题是特定于环境的. 我安装并重新安装了 roslyn templates 当我添加任何code of sode codefix of forugi of funcopfrov是否引用). VS试图打开预览窗口时,使用系统汇总异常炸开: 这是完整的代码修复提供商,唯一修改的是添加新功能 [ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(AggregateBugAnalyzerCodeFixProvider)), Shared] public class AggregateBugAnalyzerCodeFixProvider : CodeFixProvider { private const string title = "Make uppercase"; public sealed override ImmutableArray FixableDiagn
20 2024-04-25
编程技术问答社区
拖动多个选定的控件
i在Winforms Form a UserControl上都有,其中可以动态创建多个实例.如果选择它,我可以拖动它.现在,我想要,如果我选择了多个USercontrols(使用 ctrl +按钮单击),则能够同时拖动它们. 我可以像一个UserControl一样做到这一点吗? 我迄今为止尝试过的: // For dragging I use this method and also I have // overridden MouseUp,MouseDown,MouseMove from .net public void StartDrag() { dragging = true; Point p = PointToClient(Cursor.Position); dragStart = new Point(Math.Max(0, p.X), Math.Max(0, p.Y)); buttondrag.Capture = true
12 2024-04-25
编程技术问答社区
通用的转换方法抛出InvalidCastException
我想实现相同的简单通用转换方法,但是在运行时我会遇到错误. 因此,场景非常简单.我有同样的服务,使我返回外部类型项目列表.我有自己的包装外部类,只需包装此类,并揭示了一些其他功能.我还有另外一组从wrapexternal继承并添加不同功能的类. 我想创建一个通用方法,该方法接受外部列表项目的列表和指定类型的项目的返回列表. 我的应用程序代码: static void Main(string[] args) { var items = GetItemsFromServer(); var converted = ConvertItems(items).ToList(); } public static IEnumerable ConvertItems(IEnumerable externalItems) where T : Wrap
20 2024-04-25
编程技术问答社区
用c#语言在运行时获取列表中的项目类型
我需要一个表达式,该表达式获得集合的每个项目的类型. 我有这样的集合: var collection = new List{1,2.2,"string",'c'}; 可以获取这样的每项集合的类型: var myVariable= collection.Select(item => item.GetType()) 但是我需要在运行时创建此表达式. 我必须动态创建类似myVariable的东西,但是如何?! 调试器向我显示myVariable的内部表达的价值: {System.Linq.Enumerable+WhereSelectListIterator`2[System.Object,System.Type]} edit1 问题的解释: 假设我需要选择对象的一个​​属性.我猫写这样的查询: var lst = new List { new MyClass {Nam
18 2024-04-25
编程技术问答社区
当使用替代性比较器时,在hashset查找中保持O(1)?
如果我为System.Collections.Generic中的通用HashSet定义了自己的比较器,并且其运行时是o(1),则标签的查找时间仍然是O(1)? 我不只是因为似乎没有一种设置比较器的方法. 解决方案 常规主题集的查找时间o(1)是因为它使用打开的地址将对象放入数组中,因此即使您使用自己的比较器也不会更改. 其他解决方案 在最好的情况下,它将插入摊销的O(1)和O(1)的查找. 在更糟糕的情况下,它将插入摊销的o(n)和o(n)的查找. 一个好的比较器将通过拥有良好的哈希方法来帮助比最佳情况更接近最佳情况. 不好的比较器会很糟糕. (编写一个故意的不良比较器,该比较器返回每个hashcode [有效但毫无意义]的相同值,您将能够看到此O(n)行为). 一个好的比较器可能会变得不幸,但是在大多数情况下,实际情况与O(1)足够接近,我们可以将其视为O(1),并且不能转向远处. 编辑: 错过了"没有办法设置比较器".有一个
10 2024-04-25
编程技术问答社区
在.Net运行时创建表达式<Func<T,K>>。
存在一个名为LitedB的不错的数据库.我发现不方便的是没有属性来指定实体之间的关系类型(值/参考),尽管LitedB提供了用于硬编码的流利接口(详细信息: https://github.com/mbdavid/litedb/wiki/dbref ).我是懒惰的家伙,不想总是更新这个硬编码的关系,以遵循我的数据模型中的更改.因此,我决定意识到数据模型实体的运行时发现,其属性归因于DBREF(我的自定义属性).不幸的是,我对创建 有些困扰 Expression> 在.NET运行时...在以下呼叫(第一个参数)中提供它: BsonMapper.Global.Entity().DbRef(x => x.Customer, "customers"); type t and t和k在运行时作为system.type的实例(示例:t- order,k-客户). ). 如果你们给我一些有关如何实例化 的提示,我将非常感谢 Expres
26 2024-04-24
编程技术问答社区
C#泛型是如何工作的?
C ++模板是在编译时生成的.我听说C#仿制药是在运行时生成的.这意味着它是在IL->执行时生成的?该部分还包括在运行时吗? 解决方案 您的断言是正确的,C ++模板是在编译时完全构建的, .net 创建了它在运行时需要的类型.虽然,需要在编译时解决通用键入,但在运行时生成了使用和重复使用的 msil 的生成类(尽管对价值类型和参考类型略有不同) c#generics和c ++模板都是提供的语言功能 支持参数化类型.但是,有很多差异 两者之间.在语法级别,c#generics更简单 参数化类型的方法,没有C ++的复杂性 模板.此外,C#并未尝试提供所有 C ++模板提供的功能. 在实施级别, 主要区别是C#通用类型替换是 在运行时执行并保留通用类型信息 用于实例化对象. generics在运行时间(C#编程指南) 价值类型 首先将通用类型首先构建,其值类型为 参数,运行时创建了专门的通用类型 提供的参数或参数在适当的 MSIL中的位置.专门的通用类型是一
10 2024-04-24
编程技术问答社区
没有获取者/设定者的反思?
如果我在班级中声明以下内容: private int? MyID = null; 然后尝试通过反射访问它,它将找不到它.我的意思是,以下将使gprop设置为null: gType = refObj.GetType(); gProp = gType.GetProperty(PropertyName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); 但是,如果我将其声明为: ,它将正常工作 private int? MyID { get; set; } 我已经知道情况并不令人惊讶.但是,我想确认;无论如何,是否可以通过反射来使第一个声明起作用,或者我提供了一个getter/setter以进行反思? 谢谢! 解决方案 您需要GetField方法(而不是G
26 2024-04-24
编程技术问答社区
C# '括号内的类型转换在运行时相当于什么?
假设我有枚举 [Flags] public enum E { zero = 0, one = 1 } 然后我可以写 E e; object o = 1; e = (E) o; 它将起作用. ,但是如果我尝试在运行时执行此操作,例如 (o as IConvertible).ToType(typeof(E), null) 它将抛出无效的castexception. 所以,我可以在运行时调用某些内容,并且它将从INT32转换为枚举,就像我在上面写的演员一样? 解决方案 object o = 1; object z = Enum.ToObject(typeof(E), o); 其他解决方案 变量看起来像您保存转换的结果的样子? IE.您会声明哪种类型? 如果您想拥有一个对象变量,请这样做.而不是null,使用Activator.CreateInstance创建枚举的默认实例: object o = Act
14 2024-04-24
编程技术问答社区
如何在运行时设置HttpPostedFileBase的内容类型值
如何在运行时设置httppostedfilebase contentType值? HttpPostedFileBase upl=null; string path="/exelFile/book1.xlsx"; //-----Set Name Runtime var Name="FileName.xlsx"; //-----Set Type Runtime var type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; byte[] bytes =System.IO.File.ReadAllBytes(Server.MapPath(Path)); upl = (HttpPostedFileBase)new MemoryPostedFile(bytes, Name); //=====>how se
22 2024-04-24
编程技术问答社区
加载同一个程序集两次,但版本不同
我有一个称为asm.dll的组件. 此组件具有1.0.0.0版本( insemblyInfo.cs )) 然后,我需要在该组件中进行一些代码修改(仍然是Asm.dll),将版本提高到2.0.0.0并再次构建. 现在,我有两个名为Asm.dll的文件,这些文件在某些​​代码修改和其版本号方面有所不同. 在运行时我如何加载这两个文件? 附录: 现在我正在尝试以下内容: var asm1 = Assembly.LoadFrom("dir1\asm.dll"); var asm2 = Assembly.LoadFrom("dir2\asm.dll"); var types1 = asm1.GetTypes(); var types2 = asm2.GetTypes(); Type type1 = types1.First(t => t.Name.Equals("myClassIWantToInstantiate")); Type type
68 2024-04-23
编程技术问答社区
在运行时生成通用类型
我想知道是否可以将一个变量的类型设置为另一个通用变量的类型? 例如,说我有此代码: public class Foo: IBar { public FooBar() { Value = 0; } public ushort Value { get; private set; } } 我也有此类: public class FooDTO : IBar { public TType Value { get; private set; } } 在这些示例中,在IBAR的接口中具有属性 TType Value; 然后在我的代码中我有这个 var myFoo = new Foo(); var fooDataType = myFoo.Value.GetType(); //I know this line of code does not compile,
24 2024-04-23
编程技术问答社区
在运行时创建标签
使用此代码,我可以在运行时创建标签: ArrayList CustomLabel = new ArrayList(); foreach (string ValutaCustomScelta in Properties.Settings.Default.ValuteCustom) { CustomLabel.Add(new Label()); (CustomLabel[CustomLabel.Count - 1] as Label).Location = new System.Drawing.Point(317, 119 + CustomLabel.Count*26); (CustomLabel[CustomLabel.Count - 1] as Label).Parent = tabPage2; (CustomLabel[CustomLabel.Count - 1] as Label).Name = "label" + ValutaCust
24 2024-04-23
编程技术问答社区