为简单起见,我们假设我想为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)
这可以只用一种方法吗?
Winform应用程序在我们的Intranet中使用ClickOnce发布.我们在隔离存储中存储GUI的个人偏好.一切都很好:)
问题是,当我们有一个新版本的应用程序时,我们发布...所有偏好都丢失了!用户需要在每个版本上重复设置他们的首选项.
有没有办法冻结整个应用程序的隔离而不是版本?
如果我有一个属性,我想让继承者写入,但保持只读外部,实现这个的首选方法是什么?我通常会这样做:
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)
有没有更好的办法?
您如何确定Windows应用程序的最低系统要求?(OS,RAM,HD,CPU).我通常会选择自己的直觉,但我希望能够用一些东西支持.
我们的某个产品中有专有的宏语言,通过我们的Windows软件进行编辑.我想添加intellisense,但我不知道如何去做(至少没有完全重新发明轮子).是否有任何示例代码或第三方软件包至少可以让我开始?它不一定是免费的.
该应用程序使用.NET,用C#编写.
我的理解是你通常应该使用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,那么我们就有了相等性. …
在c#中如果我使用decimal(小写'd'),IDE会以深蓝色(如int)显示它.如果我使用Decimal(大写'd'),IDE会以蓝绿色显示它(如类名).在这两种情况下,工具提示都是struct System.Decimal.
有什么区别吗?是一个"首选"?
我有一个应用程序发送广播消息并侦听响应数据包.以下是代码段.
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上的所有网络适配器发送广播消息.最好的方法是什么?
c# ×7
.net ×5
winforms ×2
.net-2.0 ×1
clickonce ×1
code-editor ×1
combobox ×1
deployment ×1
gethashcode ×1
ice ×1
intellisense ×1
properties ×1
readonly ×1
requirements ×1
sockets ×1
types ×1
windows ×1