由于未知原因,VB6与UserControl的交互方式与其他对象不同.
我有一个类需要保存图形界面,用户控件,需要设置以便以后从get方法使用.我尝试了很多东西,比如使用特殊类VBControlExtender但没有任何成功.
这是我到目前为止:
'...
Private WithEvents m_uGUI As VBControlExtender
Public Property Get GUI() As VBControlExtender
Set GUI = m_uGUI
End Property
Public Property Set GUI(ByVal uValue As VBControlExtender)
Set m_uGUI = uValue
End Property
'...
Run Code Online (Sandbox Code Playgroud)
Set myObject.GUI = new ucMyUserControl
Run Code Online (Sandbox Code Playgroud)
任何的想法?
好的,这样解释; 我正在开发一个可以在任何时间点出现电源故障的系统,我正在测试的一点是在我使用StreamWriter写出文件之后.代码如下:
// Write the updated file back out to the Shell directory.
using (StreamWriter shellConfigWriter =
new StreamWriter(@"D:\xxx\Shell\Config\Game.cfg.bak"))
{
for (int i = 0; i < configContents.Count; i++)
{
shellConfigWriter.WriteLine(configContents[i]);
}
shellConfigWriter.Close();
}
FileInfo gameCfgBackup = new FileInfo(@"D:\xxx\Shell\Config\Game.cfg.bak");
gameCfgBackup.CopyTo(@"D:\xxx\Shell\Config\Game.cfg", true);
Run Code Online (Sandbox Code Playgroud)
将shellConfigWriter(a List字符串)的内容写入用作临时存储的文件,然后将其复制到原始文件上.现在,在此代码完成执行后,电源丢失,再次启动时,文件Game.cfg存在并且大小正确,但是完全空白.起初我认为这是由于在硬盘驱动器上启用了写入缓存,但即使关闭它仍然会发生(尽管不经常).
任何想法都会非常受欢迎!
更新:好的,所以在删除.Close()语句并.Flush()在每次写入操作后调用后,文件仍然是空白的.在创建新文件之前,我可以更进一步创建原始文件的备份,然后我有足够的备份来进行完整性检查,但我认为它不会有助于解决根本问题(当我告诉它写入时,刷新并关闭文件......它没有!).
在文本框的KeyDown事件中,我可以检查一系列keyCode
例如:
if (e.keyCode == 90 to 97 || e.keyCode == 104 to 110)
Run Code Online (Sandbox Code Playgroud)
怎么用正确的方式写这个?
假设您不知道Excel工作簿中第一个工作表的名称.你想找到一种从第一页读取的方法.这个片段有时会起作用,但并非总是如此.只有我吗?或者有没有一个明智的方法来做到这一点?
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + inputFile + "';Extended Properties=Excel 8.0;");
String[] excelSheets = new String[tbl.Rows.Count];
int i = 0;
foreach (DataRow row in tbl.Rows)
{
excelSheets[i] = row["TABLE_NAME"].ToString();
i++;
}
string pageName = excelSheets[0];
OleDbDataAdapter myAdapter = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + pageName + "]", MyConnection);
Run Code Online (Sandbox Code Playgroud)
注意:我正在寻找第一个工作表的名称.
我在这里读到,与SortedList不同,SortedDictionary不允许索引检索.那么我如何nameAddr["C"]在以下代码片段中正确获取?
SortedDictionary<string, string> nameAddr = new SortedDictionary<string, string>();
nameAddr.Add("X", "29");
nameAddr.Add("A", "30");
nameAddr.Add("C", "44");
Console.WriteLine(nameAddr["C"]);
Run Code Online (Sandbox Code Playgroud) 在文章测试所需行为而不是附带行为中,Kevlin Henney告诉我们:
"[...]测试中常见的陷阱是对测试的具体细节进行硬连线测试,其中这些细节是偶然的,与所需的功能无关."
但是,在使用TDD时,我经常会为偶然行为编写测试.我该怎么办这些测试?抛弃它们似乎是错误的,但文章中的建议是这些测试可以降低敏捷性.
将它们分成单独的测试套件怎么样?这听起来像是一个开始,但直觉上似乎不切实际.有没有人这样做?
我编写了一个程序来分析项目的源代码,并根据代码报告各种问题和指标.
为了分析源代码,我加载了项目目录结构中存在的代码文件,并从内存中分析代码.代码在传递给其他方法进一步分析之前会经过大量处理.
代码在处理时传递给几个类.
有一天,我在我的小组的一个较大的项目上运行它,我的程序因为有太多的源代码加载到内存中而对我不利.这是一个极端的案例,但我希望将来能够处理这个问题.
什么是避免内存问题的最佳方法?
我正在考虑加载代码,对文件进行初始处理,然后将结果序列化到磁盘,这样当我需要再次访问它们时,我不必再次操作原始代码.这有意义吗?或者序列化/反序列化是否比再次处理代码更昂贵?
我想在解决这个问题的同时保持合理的性能水平.大多数情况下,源代码会毫无问题地适应内存,所以当我内存不足时,有没有办法只能"寻呼"我的信息?有没有办法告诉我的应用程序何时内存不足?
更新:问题不在于单个文件填充内存,其内存中的所有文件都会立即填充内存.我目前的想法是在处理磁盘驱动器时将其旋转
使用余弦规则找到两个向量之间的角度并不难.但是,因为我正在为资源非常有限的平台编程,所以我想避免计算诸如sqrt和arccos.即使是简单的划分也应该尽可能地受到限制.
幸运的是,我不需要角度本身,但只需要一些与所述角度成比例的值.
所以我正在寻找一些计算上便宜的算法来计算与两个矢量之间的角度相关的量.到目前为止,我还没有找到符合条件的东西,也没有能够自己想出一些东西.
我有一个@MappedSuperclass名为Data的数据作为我数据库中每个实体的父级.它包含像Id等公共属性.然后我有一个扩展Data的实体,这也是@MappedSuperclass由于它的子类的共同功能.我的数据库中的映射是正确的.
这是我的层次结构的一个例子
@MappedSuperclass Data | @MappedSuperclass +- Employee | | @Entity | +- FullTimeEmployee | | @Entity | +- PartTimeEmployee | @Entity +- Store
并且表格已正确映射:
FullTimeEmployee PartTimeEmployee Store
无论如何都要查询数据库中所有Employee子类(FullTimeEmployee,PartTimeEmployee)作为Employee的实例而不引用查询中的子类名称?
就像是
List<Employee> allEmployees = getAllEmployees();
Run Code Online (Sandbox Code Playgroud)
我的想法是每当我决定创建另一个Employee子类(即AllDayEmployee)时,我就不必更改查询以包含名称.
因此,正如格雷戈里正确指出的那样,这是不可能的@MappedSuperclass.所以我将其更改为@Entity,因为我想为我使用的每个子类保留一个表InheritanceType.JOINED.
所以现在是上面的层次结构
@MappedSuperclass Data | @Entity | @Inheritance(strategy=InheritanceType.JOINED) +- Employee | | @Entity | +- FullTimeEmployee | | @Entity | +- PartTimeEmployee | @Entity +- Store
表格仍然是:
FullTimeEmployee PartTimeEmployee Store
现在,为了得到所有员工,我只需致电:
entityManager.createQuery("from Employee").getResultList();
Run Code Online (Sandbox Code Playgroud) c# ×4
algorithm ×1
clojure ×1
excel ×1
geometry ×1
hibernate ×1
java ×1
jquery ×1
oop ×1
statistics ×1
streamwriter ×1
tdd ×1
trigonometry ×1
unit-testing ×1
vb6 ×1