Tag: virtual

虚拟大数据从日志文件读入ListView

我一直在研究如何读取大型日志文件,大约500mbs并使用c#将它们解析为gui。 我是相当新的使用虚拟模式listview … 我决定使用带有虚拟模式的列表框(希望这可以处理大约1mil的日志消息)。 但我在将日志文件的行读入列表框时遇到问题。 我不想读取整个文件,因为它会使程序崩溃,所以我在foreach语句中使用File.ReadLines。 我想我在处理RetrieveVirtualItem处理程序时无法读取我的文件,并获得一个新行并填充它 private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) { ListViewItem lvi = new ListViewItem(); lvi.Text = addList(); // need to read a new row ListViewItem.ListViewSubItem lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = e.ItemIndex.ToString(“n”); lvi.SubItems.Add(lvsi); e.Item = lvi; } 我如何读取文件的每一行并将其与listview的虚拟检索方法相关联? 我最终想要添加搜索,因此它只显示匹配匹配的行。 我也不确定如何编辑listView1.VirtualListSize – 如何使这个变量等于匹配量? 我认为因为我需要一个值,因为我加载表单。

如何通过reflection检查属性是否为虚拟?

给定一个对象,我该如何判断该对象是否具有虚拟属性? var entity = repository.GetByID(entityId); 我试过看: PropertyInfo[] properties = entity.GetType().GetProperties(); 但无法辨别出任何属性是否表示虚拟。

你可以覆盖私有虚拟方法吗?

我想你可以和我的同事认为你做不到!

C#:虚拟函数调用甚至比委托调用更快?

我刚刚遇到一个代码设计问题。 说,我有一个“模板”方法,可以调用一些可能“改变”的函数。 直观的设计是遵循“模板设计模式”。 将更改函数定义为要在子类中重写的“虚拟”函数。 或者,我可以使用没有“虚拟”的委托function。 注入委托函数,以便它们也可以自定义。 最初,我认为第二种“委托”方式比“虚拟”方式更快,但是一些编码片段certificate它不正确。 在下面的代码中,第一个DoSomething方法遵循“模板模式”。 它调用虚方法IsTokenChar。 第二个DoSomthing方法不依赖于虚函数。 相反,它有一个传入代理。 在我的电脑中,第一个DoSomthing总是比第二个快。 结果如1645:1780。 “虚拟调用”是动态绑定,应该比直接委托调用更耗时,对吗? 但结果表明它不是。 有人可以解释一下吗? using System; using System.Diagnostics; class Foo { public virtual bool IsTokenChar(string word) { return String.IsNullOrEmpty(word); } // this is a template method public int DoSomething(string word) { int trueCount = 0; for (int i = 0; i < repeat; […]

用于网络流的虚拟摄像机/直接显示filter

我正在使用Flash Live Encoder。 它使用相机来播放video。 支持论坛说我可以创建自定义直接显示filter并流式传输我需要的数据。 我不明白直接显示filter将如何显示在实时编码器的源列表中。 我尝试使用一些商业虚拟相机,它工作正常,但它不能使用网络流源。 摘要。 我有几个网络流。 我认为我必须为每个人创建虚拟摄像头。 但是,如果我在C#上找到带有直接显示filter的示例,我找不到虚拟相机。

c#中的虚拟关键字

我对java有所了解,过去几天一直在学习c#。 现在我遇到了“虚拟”关键字,正如此链接所建议的那样,用于允许在子类中覆盖相应的方法,属性等。 现在我认为即使不使用“virtual”关键字也可以覆盖方法。 那为什么有必要呢?

有关Virtual / new …以及接口的更多信息!

昨天我发布了一个关于new / virtual / override关键字的问题,我从你的答案中学到了很多东西。 但我仍有一些疑虑。 在所有“盒子”之间,我与类型的方法表中真正发生的事情失去联系。 例如: interface I1 { void Draw(); } interface I2 { void Draw(); } class A : I1, I2 { public void Minstance() { Console.WriteLine(“A::MInstance”); } public virtual void Draw() { Console.WriteLine(“A::Draw”); } void I2.Draw() { Console.WriteLine(“A::I2.Draw”); } } class B : A, I1, I2 { public new virtual […]

DataGridView虚拟模式以简单列表作为源

之前我问过一个关于我的dataGridView性能的问题,因为它显示了大量的行,这些行是根据传入的流添加的。 给出了多个解决方案,其中一个解决方案启用虚拟模式 MSDN有一篇关于这个主题的文章,但它比我使用数据库和可编辑字段所需要的更复杂。 我的DataGridView仅用于显示,我显示的数据放在List中。 在我接受答案后,我收到了这个链接: http : //www.codeproject.com/Articles/23937/PagingANN-with havenGridView-in-VirtualMode 。 即使它使用数据库示例,它也更适合我需要的东西。 包含我要显示的数据的My List声明如下: List captureResults = new List(); ResultRow对象定义如下: /* Simplified */ public class ResultRow { private int first = 0; private string second = “”; private UInt64 third = 0; private IPAddress fourth = null; /* etc */ public ResultRow() { } public void […]

反思说接口方法在实现类型中是虚拟的,当它们不是时?

我在unit testing中有以下代码 public bool TestMethodsOf() { var impl = typeof(T); var valid = true; foreach (var iface in impl.GetInterfaces().Where(i => typeof(I).IsAssignableFrom(i))) { var members = iface.GetMethods(); foreach (var member in members) { Trace.Write(“Checking if method ” + iface.Name + “.” + member.Name + ” is virtual…”); var implMember = impl.GetMethod(member.Name, member.GetParameters().Select(c => c.ParameterType).ToArray()); if (!implMember.IsVirtual) […]

对C#中的“覆盖”与“新”感到困惑

我有以下课程: class Base { public virtual void Print() { Console.WriteLine(“Base”); } } class Der1 : Base { public new virtual void Print() { Console.WriteLine(“Der1”); } } class Der2 : Der1 { public override void Print() { Console.WriteLine(“Der2”); } } 这是我的主要方法: Base b = new Der2(); Der1 d1 = new Der2(); Der2 d2 = new Der2(); […]