小编Hen*_*man的帖子

动作脚本3:有人可以向我解释静态变量和方法的概念吗?

我正在学习AS3,对于静态变量或方法的作用,或者它与没有此关键字的方法或变量的区别,我感到有点困惑.我认为这应该足够简单回答.

actionscript-3

12
推荐指数
2
解决办法
3万
查看次数

在C#中测试空值

如果我这样做:

DataSet ds = GetMyDataset();

try
{
    string somevalue = ds.Tables[0].Rows[0]["col1"];
}
catch
{
    //maybe something was null
}
Run Code Online (Sandbox Code Playgroud)

有没有使用try/catch检查空值的好方法?只是我不关心"col1"中的值是否为空,或者如果"col1"不存在,或者如果没有返回行,或者如果表不存在!

也许我应该关心?:)也许try/catch是接近这个的最佳方式,但我只是想知道是否有另一种方法可以做到这一点?

谢谢!

c# dataset

12
推荐指数
2
解决办法
2万
查看次数

Stream.Dispose或stream = null?

我有一些类似的代码:

HttpWebRequest req;
HttpWebResponse response;
Stream receiveStream = null;
StreamReader readStream = null;
try
{
    req = (HttpWebRequest)WebRequest.Create("someUrl"));
    req.Credentials = CredentialCache.DefaultCredentials;

    req.Method = "GET";

    response = (HttpWebResponse)req.GetResponse();
    receiveStream = response.GetResponseStream();
    readStream = new StreamReader(receiveStream, Encoding.Default);

    return readStream.ReadToEnd();
}
catch
{
    return "Error";
}
finally 
{
    readStream = null;
    receiveStream = null;
    response = null;
    req = null;
}
Run Code Online (Sandbox Code Playgroud)

此代码是否应该具有readStream.Dispose()和responseStream.Dispose()而不是将它们都设置为null?

.net c#

11
推荐指数
4
解决办法
2957
查看次数

如何将图像保存到数据库?

我在尝试将图像保存到数据库时遇到此错误.

我究竟做错了什么? 在此输入图像描述

这是我桌子的设计:

在此输入图像描述

我正在使用Microsoft Server 2008.

c# winforms

11
推荐指数
1
解决办法
9021
查看次数

C#闭包,为什么循环变量通过引用捕获?

在这个例子中,我试图通过值传递,但是传递了引用.

for (int i = 0; i < 10; i++)
{
    Thread t = new Thread(() => new PhoneJobTest(i);
    t.Start();
}
Run Code Online (Sandbox Code Playgroud)

这样可以解决:

 for (int i = 0; i < 10; i++)
{
    int jobNum = i;
    Thread t = new Thread(() => new PhoneJobTest(jobNum);
    t.Start();
}
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么原始示例传递引用?

c#

10
推荐指数
2
解决办法
3446
查看次数

C#计时器不会打勾

我有一个奇怪的问题......在过去的几个小时里我一直在想不起......我在winform代码中输入的计时器(来自工具栏)不会打勾......

我在我的程序中有两种形式的计时器,它们都工作正常...我尝试完全相同它不会勾选...我选择它,将它拖到一个表单上,启用它,设置间隔和处理滴答事件...没有任何反应...我甚至尝试在tick事件中放置像messagebox.show这样的随机代码,只是为了看看是否有任何事情发生,什么都没有!正如我所说,我的程序中有一些更多的计时器(在其他形式,而不是我试图把这个计时器的那个),他们都工作正常...

有什么建议?

提前致谢!

c# timer winforms

10
推荐指数
3
解决办法
2万
查看次数

如何在渲染到XPS时使用页眉和页脚创建Xaml FlowDocument?

我正在寻找一种干净的通用方法的概念来描述XAML FlowDocument中重复的页眉和页脚,而不需要任何代码.它只需要在从C#渲染到XPS时正确显示.

c# wpf xaml .net-4.0 flowdocument

10
推荐指数
1
解决办法
9895
查看次数

Parallels.ForEach与Foreach相同的时间

所有,

我使用Parallels.ForEach如下

private void fillEventDifferencesParallels(IProducerConsumerCollection<IEvent> events, Dictionary<string, IEvent> originalEvents)
    {
        Parallel.ForEach<IEvent>(events, evt =>
        {
            IEvent originalEventInfo = originalEvents[evt.EventID];
            evt.FillDifferences(originalEventInfo);
        });
    }
Run Code Online (Sandbox Code Playgroud)

好的,所以我遇到的问题是我有28个这样的列表(一个测试样本,这应该可以扩展到200+)和FillDifferences方法非常耗时(每次调用大约4s).因此,在普通ForEach中运行的平均时间大约为100-130秒.当我在Parallel中运行相同的东西时,它需要相同的时间和Spikes我的CPU(Intel I5,2 Core,每个Core 2个线程)导致应用程序在此查询运行时变得迟缓(这是在一个线程上运行这是由GUI线程产生的).

所以我的问题是,我做错了什么导致这花费相同的时间?我读到List不是线程安全的所以我重写了这个以使用IProducerConsumerCollection.是否有任何其他陷阱可能导致这种情况?

FillDifferences方法调用一个静态类,该类使用反射来找出原始对象和修改对象之间存在多少差异.静态对象没有"全局"变量,只有被调用方法的局部变量.

有些人想看看FillDifferences()方法调用了什么.这是最终结束的地方:

  public  List<IDifferences> ShallowCompare(object orig, object changed, string currentName)
    {
        List<IDifferences> differences = new List<IDifferences>();
        foreach (MemberInfo m in orig.GetType().GetMembers())
        {
            List<IDifferences> temp = null;

            //Go through all MemberInfos until you find one that is a Property.
            if (m.MemberType == MemberTypes.Property)
            {
                PropertyInfo p = (PropertyInfo)m;
                string newCurrentName = "";
                if (currentName != …
Run Code Online (Sandbox Code Playgroud)

.net c# parallel-processing task-parallel-library

10
推荐指数
1
解决办法
2138
查看次数

隐式方法组转换问题

我想知道为什么给定代码的输出(在LinqPad中执行它)

void Main() {
    Compare1((Action)Main).Dump();
    Compare2(Main).Dump();
}

bool Compare1(Delegate x) {
    return x == (Action)Main;
}

bool Compare2(Action x) {
    return x == Main;
}
Run Code Online (Sandbox Code Playgroud)

总是:

 False
 True
Run Code Online (Sandbox Code Playgroud)

我天真地预计它会出现True在两种情况下.

c# delegates

10
推荐指数
2
解决办法
1157
查看次数

为什么MenuItem标题在它们之前有下划线?

如果你宣布MenuItems,我总是看到他们的Header属性声明如下:

<MenuItem Header="_Edit">
    <MenuItem Header="_Undo"/>
    <MenuItem Header="_Redo"/>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)

而不是像这样:

<MenuItem Header="Edit">
    <MenuItem Header="Undo"/>
    <MenuItem Header="Redo"/>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)

有这个原因还是只是一个惯例?在设计师看来,无论我是否有下划线,它似乎都没有影响.

c# wpf menu menuitem

10
推荐指数
1
解决办法
2542
查看次数