小编Jon*_*n B的帖子

类型和可空<type>的扩展方法

为简单起见,我们假设我想为int类型编写扩展方法?和int:

public static class IntExtentions
{
    public static int AddOne(this int? number)
    {
        var dummy = 0;
        if (number != null)
            dummy = (int)number;

        return dummy.AddOne();
    }

    public static int AddOne(this int number)
    {
        return number + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以只用一种方法吗?

.net extension-methods

11
推荐指数
2
解决办法
3769
查看次数

ClickOnce和IsolatedStorage

Winform应用程序在我们的Intranet中使用ClickOnce发布.我们在隔离存储中存储GUI的个人偏好.一切都很好:)

问题是,当我们有一个新版本的应用程序时,我们发布...所有偏好都丢失了!用户需要在每个版本上重复设置他们的首选项.

有没有办法冻结整个应用程序的隔离而不是版本?

c# clickonce isolatedstorage .net-2.0 winforms

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

实现对公众只读的属性,但对继承者可写的最佳方法是什么?

如果我有一个属性,我想让继承者写入,但保持只读外部,实现这个的首选方法是什么?我通常会这样做:

private object m_myProp;
public object MyProp
{
    get { return m_myProp; }
}
protected void SetMyProp(object value)
{
    m_myProp = value;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

.net c# properties readonly

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

如何确定最低系统要求

您如何确定Windows应用程序的最低系统要求?(OS,RAM,HD,CPU).我通常会选择自己的直觉,但我希望能够用一些东西支持.

windows deployment requirements

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

如何在我的应用程序中添加intellisense?

我们的某个产品中有专有的宏语言,通过我们的Windows软件进行编辑.我想添加intellisense,但我不知道如何去做(至少没有完全重新发明轮子).是否有任何示例代码或第三方软件包至少可以让我开始?它不一定是免费的.

该应用程序使用.NET,用C#编写.

.net intellisense syntax-highlighting code-editor

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

使用xor的GetHashCode()问题

我的理解是你通常应该使用xor和GetHashCode()生成一个int来通过它的值来识别你的数据(而不是通过它的引用).这是一个简单的例子:

class Foo
{
    int m_a;
    int m_b;

    public int A
    {
        get { return m_a; }
        set { m_a = value; }
    }

    public int B
    {
        get { return m_b; }
        set { m_b = value; }
    }

    public Foo(int a, int b)
    {
        m_a = a;
        m_b = b;
    }

    public override int GetHashCode()
    {
        return A ^ B;
    }

    public override bool Equals(object obj)
    {
        return this.GetHashCode() == obj.GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的想法是,我想根据属性A和B的值将Foo的一个实例与另一个实例进行比较.如果Foo1.A == Foo2.A和Foo1.B == Foo2.B,那么我们就有了相等性. …

.net c# gethashcode

9
推荐指数
1
解决办法
6794
查看次数

在c#中是十进制和十进制不同?

在c#中如果我使用decimal(小写'd'),IDE会以深蓝色(如int)显示它.如果我使用Decimal(大写'd'),IDE会以蓝绿色显示它(如类名).在这两种情况下,工具提示都是struct System.Decimal.

有什么区别吗?是一个"首选"?

c# types

9
推荐指数
1
解决办法
1444
查看次数

8
推荐指数
1
解决办法
6511
查看次数

从所有网络适配器发送广播消息

我有一个应用程序发送广播消息并侦听响应数据包.以下是代码段.

m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
m_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);

m_socket.Bind(new IPEndPoint(IPAddress.Any, 2000));

m_socket.BeginSendTo(
                    buffer, 
                    0, 
                    buffer.Length, 
                    SocketFlags.None,
                    new IPEndPoint(IPAddress.Broadcast, 2000),
                    Callback), 
                    null
                    );
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,没有发送广播消息.在我的机器上,我有三个网络适配器.一个是我的本地网络适配器,另外两个是VMWare网络虚拟适配器.当我运行我的应用程序时,我可以看到(使用wireshark网络捕获)广播消息是从其中一个VMWare网络适配器发送的.

我想修改代码,以便从PC上的所有网络适配器发送广播消息.最好的方法是什么?

.net c# sockets

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

有关C#和ZeroC ICE的任何经验

http://www.zeroc.com/

我听说它在跨平台互操作和性能方面要好得多.

c# ice

8
推荐指数
2
解决办法
2054
查看次数