希望这是一个简单的问题,但我非常喜欢这个技术答案!
有什么区别:
i = 4
Run Code Online (Sandbox Code Playgroud)
和
Set i = 4
Run Code Online (Sandbox Code Playgroud)
在VBA?我知道后者会抛出错误,但我不完全理解为什么.
我目前正在编写我的第一个Windows Forms应用程序.我现在已经阅读了一些C#书籍,所以我对C#处理异常的语言功能有了比较深入的了解.它们都非常理论化,所以我还没有想到如何在我的应用程序中将基本概念转换为一个良好的异常处理模型.
有人愿意分享关于这个主题的任何智慧珍珠吗?发布你看过像我这样的新手所犯的常见错误,以及处理异常的一般建议,使我的应用程序更加稳定和健壮.
我目前正在努力解决的主要问题是:
感谢所有建议!
您认为计算机科学中的哪些概念使您成为更好的程序员?
我的学位是机械工程,所以最终成为一名程序员,我有点缺乏基础知识.我最近学到了一些标准的CS概念,让我对我正在做的事情有了更深刻的理解,特别是:
语言特色
数据结构
算法
显然,目前这个名单有点短,所以我希望得到以下建议:
我想创建一个Dictionary对象,使用字符串Keys,保存通用类型的值.我想它看起来像这样:
Dictionary<string, List<T>> d = new Dictionary<string, List<T>>();
Run Code Online (Sandbox Code Playgroud)
并允许我添加以下内容:
d.Add("Numbers", new List<int>());
d.Add("Letters", new List<string>());
Run Code Online (Sandbox Code Playgroud)
我知道我可以为字符串列表执行此操作,例如,使用以下语法:
Dictionary<string, List<string>> d = new Dictionary<string, List<string>>();
d.Add("Key", new List<string>());
Run Code Online (Sandbox Code Playgroud)
但如果可能的话,我想把它作为通用名单......
然后2个问题:
非常感谢,
乔恩
我目前正在尝试使用以下代码将对象数组中的数据写入Excel中的范围,其中objData
只是一个字符串数组:
private object m = System.Type.Missing;
object[] objData = getDataIWantToWrite();
Range rn_Temp;
rn_Temp = (Range)XlApp.get_Range(RangeName, m);
rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1);
rn_Temp.value2 = objData;
Run Code Online (Sandbox Code Playgroud)
这几乎可以工作,问题是范围被填满但是每个单元格都获得了第一个项目的值objData
.
逆向工作,即
private object m = System.Type.Missing;
object[] objData = new object[x,y]
Range rn_Temp;
rn_Temp = (Range)XlApp.get_Range(RangeName, m);
rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1);
objData = (object[])rn_Temp.value2;
Run Code Online (Sandbox Code Playgroud)
将返回一个包含工作表中所有值的数组,所以我不确定为什么阅读和赋值的工作方式不同.
有没有人成功地做过这件事?我目前正逐个单元地编写阵列,但它需要处理很多(> 50,000)行,因此非常耗时.
我有一组类,我想序列化为XML文件.它看起来像这样:
public class Foo
{
public List<Bar> BarList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
bar只是一组属性的包装器,如下所示:
public class Bar
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想对此进行标记,以便将其输出到XML文件 - 这将用于持久性,并且还可以通过XSLT将设置呈现为一个很好的人类可读形式.
我想得到一个像这样的好的XML表示:
<?xml version="1.0" encoding="utf-8"?>
<Foo>
<BarList>
<Bar>
<Property1>Value</Property1>
<Property2>Value</Property2>
</Bar>
<Bar>
<Property1>Value</Property1>
<Property2>Value</Property2>
</Bar>
</Barlist>
</Foo>
Run Code Online (Sandbox Code Playgroud)
Barlist中的所有条形图都写在哪里,包含所有属性.我很确定我需要在类定义上使用一些标记才能使它工作,但我似乎找不到合适的组合.
我用属性标记了Foo
[XmlRoot("Foo")]
Run Code Online (Sandbox Code Playgroud)
和list<Bar>
属性
[XmlArray("BarList"), XmlArrayItem(typeof(Bar), ElementName="Bar")]
Run Code Online (Sandbox Code Playgroud)
试图告诉Serializer我想要发生什么.这似乎不起作用,我只是得到一个空标记,看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Foo>
<Barlist />
</Foo>
Run Code Online (Sandbox Code Playgroud)
我不确定我使用自动属性的事实是否会产生任何影响,或者如果使用泛型需要任何特殊处理.我已经使用了更简单的类型,比如字符串列表,但到目前为止,我已经找到了一个类列表.
我发现自己最近不得不写一些VBA代码,只是想知道是否有人曾经遇到过有关VBA垃圾收集器如何工作的任何细节?.Net GC确实有很好的记录,但我在VBA GC上找不到一丝细节,除了模糊的提到它是一个参考计数器.我认为它与VB6 GC非常相似,但无法找到任何相关信息.
具体来说,我有兴趣知道:
这比任何特别需要知道的更多是出于好奇,任何洞察都非常感激!
鉴于两个相同模式的数据库,有没有简单的方法在两者之间传输记录?我正在使用LINQ to SQL,因为我需要在此过程中执行一些额外的操作,并且使用表示我正在传输的记录的对象使这更容易.这是一个小规模的帮助应用程序,因此SSIS可能有点过分,SQLBulkCopy不允许我在途中轻松查询对象.
我想做的是:
public static void TransferCustomer
(DBDataContext DCSource,
DBDataContext DCDest,
int CustomerID)
{
Customer customer;
using (DCSource = new DBDataContext(SourceConnStr))
{
customer = DCSource.Customers
.Where(c => c.CustomerID == CustomerID)
.Single();
}
using (DCDest = new DBDataContext(DestConnStr))
{
DCDest.Customers.InsertOnSubmit(customer);
DCDest.SubmitChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
但是由于显而易见的原因,这会引发消息异常:
已尝试附加或添加非新的实体,可能已从另一个DataContext加载.这不受支持.
我可以通过像这样对象的浅拷贝来解决这个问题:
public static Customer Clone(this Customer customer)
{
return new Customer()
{
Name = customer.Name,
Email = customer.Email
etc...
};
}
Run Code Online (Sandbox Code Playgroud)
然后插入克隆的项目.如果我只复制有问题的字段,而不是任何表示表关系的引用,这可以正常工作.然而,它有点啰嗦,我正在做的方式需要我手动分配克隆方法中的每个字段.任何人都可以建议任何使这更容易的方法吗?我想知道的两件事是:
非常感谢!
我想做以下事情,找不到优雅的方式:
System.Xml.XmlDocument
XSLT
我写的 转换它CSS
样式表 WebBrowser
控件我目前正在从磁盘上的文件中读取它,填充它,然后在填充后将其保存回磁盘.我XSLT
在模板中引用,然后CSS
在XSLT
然后使用该WebBrowser.Navigate([filename])
方法显示XML文件.
显然,当我来部署此应用程序,它会打破可怕的文件将不会存在于磁盘上,我将无法引用XSLT
和CSS
文件中的XML
文件,因为它们会资源.我打算将模板作为资源包含在内,但无法从中找到一种巧妙的方法.
任何帮助非常感谢
我已经构建了一个小的单页内联网应用程序,它非常Javascript.它在Chrome和Firefox中运行得很漂亮,但是只要你在IE7/8中加载它,界面就会变得极其缓慢.它有各种jQueryUI小部件,如draggables和可调整大小的窗格,一旦你开始点击和拖动,帧速率就会下降到不可用的区域.
在我尝试理解IE8开发人员工具之前,IE7/8脚本引擎中是否有任何已知的问题我可以在我的代码中检查?我已经看到了.innerHTML()
很慢的参考,但我不知道是否还有其他我应该寻找的东西.