小编alt*_*tso的帖子

数学运算为null

请解释为什么这个测试通过?

[Test]
public void TestNullOps()
{
    Assert.That(10 / null, Is.Null);
    Assert.That(10 * null, Is.Null);
    Assert.That(10 + null, Is.Null);
    Assert.That(10 - null, Is.Null);
    Assert.That(10 % null, Is.Null);
    Assert.That(null / 10, Is.Null);
    Assert.That(null * 10, Is.Null);
    Assert.That(null + 10, Is.Null);
    Assert.That(null - 10, Is.Null);
    Assert.That(null % 10, Is.Null);

    int zero = 0;
    Assert.That(null / zero, Is.Null);
}
Run Code Online (Sandbox Code Playgroud)

我不明白这个代码是如何编译的.

看起来每个带有null返回的数学表达式Nullable<T>(例如10 / null是a Nullable<int>).但是我没有在Nullable<T>课堂上看到操作员方法.如果取消这些运算符int,为什么最后的断言不会失败?

c#

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

将事件作为参数传递给方法

可能重复:
如何将事件传递给方法?

是否可以将事件作为参数传递给方法?

例如,以下方法订阅事件,确实有效,并取消订阅事件:

void SubscribeDoAndUnsubscribe<TElement, TEventArgs>(
        IEnumerable<TElement> elements,
        ??? elementEvent)
    where TEventArgs: EventArgs
{
    EventHandler<TEventArgs> handler = (sender, e) => { /* Handle an event */ };

    foreach (var element in elements)
    {
         // Subscribe somehow
         element.elementEvent += handler
    }

    // Do things

    foreach (var element in elements)
    {
         // Unsubscribe somehow
         element.elementEvent -= handler
    }
}
Run Code Online (Sandbox Code Playgroud)

客户代码:

var elements = new [] { new Button(), new Button() };
SubscribeDoAndUnsubscribe(elements, ??? /* e => e.Click */);
Run Code Online (Sandbox Code Playgroud)

如果不可能,我如何以其他方式实现类似的逻辑?我应该为订阅/取消订阅方法传递一对代表吗?

c# events

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

JavaScript中的"常用"函数与函数变量

两者之间有什么区别吗?

function MyFunc() {
    // code...
}
Run Code Online (Sandbox Code Playgroud)

var MyFunc = function() {
    // code...
};
Run Code Online (Sandbox Code Playgroud)

在JavaScript?

javascript

22
推荐指数
2
解决办法
1345
查看次数

如何从GroupPrincipal获取域名?

我需要按以下格式列出特定本地组中的所有用户:"Domain\UserName".我可以为该组提取GroupPrincipal对象的集合,但我不知道如何以所需格式获取用户.GroupPrincipal没有属性Domain.

以下代码输出没有域的用户(例如"UserName").

using (var context = new PrincipalContext(ContextType.Machine, null))
{
    using (var group = GroupPrincipal.FindByIdentity(context, IdentityType.SamAccountName, @"My Local Group"))
    {
        if (group != null)
        {
            foreach (var p in group.GetMembers(false))
            {
                Console.WriteLine(p.SamAccountName);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以从主要对象获取域netbios名称?如果是这样,如何获得它?

.net active-directory

6
推荐指数
1
解决办法
2956
查看次数

JSON:序列化从IEnumerable派生的类型

JavaScriptSerializer将从IEnumerable派生的类型序列化为JavaScript数组.它方便了数组和列表,但在某些情况下,我需要序列化在派生类型中声明的属性(例如,键入IGrouping).这里有一些示例代码:

var items = new[] { "aaabbb", "abcd", "bdsasd", "bsdqw" };
IGrouping<char, string> data = items.GroupBy(i => i[0]).First();
var serializer = new JavaScriptSerializer();
var serialized = serializer.Serialize(data);
// serialized == "[\"aaabbb\",\"abcd\"]"
// doesn't contain definition for IGrouping.Key property
Run Code Online (Sandbox Code Playgroud)

这个问题有什么简单的解决方案吗?

asp.net serialization json

5
推荐指数
1
解决办法
5754
查看次数

Razor Views中的HttpContext

我试图将一些ASPX标记移植到Razor,但编译器抛出了一个错误.

ASPX(工作正常):

<% if (node.IsAccessibleToUser(Context)) { %>
    // markup
<% } %>
Run Code Online (Sandbox Code Playgroud)

CSHTML(抛出错误):

@if (node.IsAccessibleToUser(Context)) {
    // markup
}
Run Code Online (Sandbox Code Playgroud)

参数1:无法从'System.Web.HttpContextBase'转换为'System.Web.HttpContext'

如何HttpContext在Razor视图中获取参考?使用是正确的HttpContext.Current还是我需要以不同的方式检查站点地图节点的可见性?

razor asp.net-mvc-3

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

在TextBox中获取插入位置

如何在TextBox控件中的可见客户端区域中获取插入位置(x,y)?我需要在文本框中添加自动完成功能.

我找到了WPF的解决方案,但它无法在Silverlight中应用.

silverlight

4
推荐指数
1
解决办法
1092
查看次数

在Visual Studio 2012中针对WP7异步驱动的项目

是否可以在Windows Phone 8.0 SDK(Visual Studio 2012)中使用异步内容并仍然以Windows Phone 7.1为目标?

我安装了Windows Phone 8.0 SDK并打开了我的WP7.1项目,引用了AsyncCTP nuget包.发生以下编译错误:

找不到'async'修饰符所需的所有类型.您是否针对错误的框架版本,或缺少对程序集的引用?

我不想放弃对WP7.1的支持,因此不能升级到WP8.

windows-phone-7 async-await async-ctp visual-studio-2012

3
推荐指数
1
解决办法
1103
查看次数

如何获取UIElement的父Popup?

我对下面的标记有两个问题:

<Popup>
    <Button x:Name="button"/>
</Popup>
Run Code Online (Sandbox Code Playgroud)
  1. 为什么VisualTreeHelper.GetParent(button)返回null?
  2. 我怎样才能得到父母PopupUIElement

silverlight popup uielement

2
推荐指数
1
解决办法
3755
查看次数

为什么Stream.CopyTo不是扩展方法?

.NET Framework 4引入了新的辅助方法Stream.CopyTo.它使用读/写方法,不需要访问流的任何内部成员.它不是虚拟的,你无法覆盖它.

所以我的问题是为什么Stream.CopyTo是一个实例方法?它可以很容易地作为扩展实现.这是因为Stream是一个抽象类而不是接口吗?

它不会引起任何问题,只是有趣:)

.net-4.0

0
推荐指数
1
解决办法
281
查看次数