小编Ang*_*ker的帖子

Java还没有跟上吗?

我整天都在编写C#,但是最近为了爱好的东西跳转到Java,比如为BlackBerry和Android平台编写代码.这段时间我一直认为,就语言特征而言,Java和C#是彼此的双胞胎.

无论如何,我发现Java相当于C#1.1或类似的东西.在Java中,我必须编写两次我在C#中编写的代码.像对象初始化器,lambda,属性为上帝的缘故,是否会出现在Java中?我试图浏览JSR的东西,但找不到任何东西.

Java根本没有跟上吗?或者我只是不按照预期使用它?

c# java

19
推荐指数
5
解决办法
886
查看次数

如何让Resharper了解框架版本?

我在VS2008中使用Resharper 4.5.1进行编码,但项目设置为针对.NET Framework 2.0.

仍然,Resharper正在提出与.NET 3.5框架相关的建议.例如,它告诉我我应该使用集合初始化器等...

我查看了设置,似乎无法找到复选框告诉它给出2.0具体的建议.

c# resharper resharper-4.5 visual-studio-2008 visual-studio

19
推荐指数
2
解决办法
4886
查看次数

寻找一些好的C#面试问题

我不想问候选人的问题,而是给他们几个问题来解决.这样做的原因是我看到人们对理论非常出色,但当面对现实世界的c#问题时,却无法破解它.

这些c#问题应该足够简单,解决时间不会超过1-20分钟,但又足够复杂,我可以清除无法编码的候选人.

现在,我通常会要求申请人撤消字符串并从列表中删除重复项.仅这一点就可以清除大量人口.

我可以使用的其他任何例子?

编辑:我应该提到这是一个标准的c#gig,他们将编写业务代码而不是找到实现链表的最佳方式.

c#

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

自组织应用程序

对于许多人将在办公室使用的应用程序,我有以下要求 - 没有服务器组件.客户端应用程序的所有实例都应以某种方式在它们之间进行协商,以确定哪个客户端将承担服务器角色.客户应该通过IP在他们之间进行通信.

如果客户端应用程序出现故障,另一个客户端必须以无缝方式接管.我知道拥有一台服务器会更简单.但是因为应用程序必须非常有弹性,所以不想让服务器停机(甚至是其备份)的风险,而是依赖于这种混合网状连接,其中服务器角色从客户端跳到客户端.

我想我的应用程序连接已关闭.基本上,当应用程序启动时,它会通过UDP(通过预定义的IP地址,所有内容监听或通过UDP广播)宣布自己.从那时起,通信以类似的方式进行.

我遇到问题的部分是如何在客户端之间进行协商/自组织以选择具有服务器角色的客户端.如何可靠地检测到客户端已经关闭,然后必须进行新的协商.最后的困难是复制客户端使用服务器角色累积的数据.

我在c#中创建了一个原型,用于通信并尝试复制数据,但协商部分(特别是与客户端故障相结合).

最初我认为这就是ZeroConf(又名Bonjour)所做的.但那只是宣布可用的网络服务.

无论如何,我不想重新发明,我不能成为第一个想要这样做的人.所以我的问题:

  • 是否有一种模式已经实现了我上面描述的内容?
  • 如果是这样,是否有可用的.NET(甚至本机)库?
  • 在客户之间协商服务器角色的好方法是什么?

c# architecture p2p

18
推荐指数
2
解决办法
1548
查看次数

关闭和清理Socket连接的正确方法是什么?

我对Socket对象上的相关方法的聚宝盆感到有点困惑,该对象可能会关闭并清理套接字连接.考虑以下:

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("192.168.1.22", 8333);
socket.Send(Encoding.UTF8.GetBytes("hello"));

// now for the closing fun
socket.Shutdown(SocketShutdown.Both);
socket.Disconnect(false);
socket.Close();
socket.Dispose();
Run Code Online (Sandbox Code Playgroud)

另外,这个人说要真正干净地关闭一个连接,必须执行socket.Shutdown(SocketShudown.Send),然后等待另一方做出响应.

什么是关闭,然后清理套接字连接的正确方法?

c# sockets networking

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

.NET世界中的静态编译

我将为拥有WinXP机器的客户端编写一个小型桌面应用程序,他们不会安装.NET框架(至少不适合我).

所以我的选择仅限于C++或VB6,两者都不是很好.我记得当时Mono想出了一个静态编译器,但最近我唯一能找到的就是Miguel de Icaza为了在iPhone上运行应用程序而在游戏引擎上进行静态编译 - 不是我的考虑到了.

有没有任何产品,免费或商业,允许我静态编译我的.net 3.5 winform应用程序?

谢谢

static compilation .net-3.5

17
推荐指数
2
解决办法
2083
查看次数

在声明时不实例化对象的原因是什么?

我最近不得不深入研究一些VB6代码,我看到了这个模式:

dim o as obj
set o = new obj
Run Code Online (Sandbox Code Playgroud)

为什么不呢?

dim o as new obj
Run Code Online (Sandbox Code Playgroud)

我记得15年前有一个很好的理由,但我不记得它现在是什么.谁还记得吗?原因仍然有效吗?

vb6

17
推荐指数
3
解决办法
5286
查看次数

如何有效地杀死C#中的线程?

我不是一个 ,诚实.我已经阅读了有关线程查杀的所有建议,但请考虑代码.它执行以下操作:

  1. 它启动一个线程(通过StartThread方法)
  2. 它调用数据库查找ServiceBroker队列中的任何内容.注意WAITFOR命令 - 这意味着它将一直坐在那里直到队列中有东西.这一切都在MonitorQueue方法中.
  3. 杀死线程.我试过.Interrupt- 似乎什么也没做.然后我尝试了.Abort,永远不应该使用,但即使这样做也没有.

    Thread thxMonitor = new Thread(MonitorQueue);
    void StartThread() {
        thxMonitor.Start();
    }
    
    void MonitorQueue(object obj) {
        var conn = new SqlConnection(connString);
        conn.Open();
        var cmd = conn.CreateCommand();
        cmd.CommandTimeout = 0; // forever and ever
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM SBQ)";
    
        var dataTable = new DataTable();
        var da = new SqlDataAdapter(command); …
    Run Code Online (Sandbox Code Playgroud)

.net c# multithreading .net-3.5

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

如何删除 Windows 终端中的 powershell 广告和更新检查?

当我启动 Windows 终端时,我得到以下信息:

在此输入图像描述

如何摆脱版权和版本通知、帮助 URL 和更新检查?我只想进入命令行。

我的 powershell 配置文件在 settings.json (Windows 终端的配置文件)中如下所示:

{
    "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
    "hidden": false,
    "name": "PowerShell",
    "source": "Windows.Terminal.PowershellCore",
    "fontFace": "Cascadia Code PL",
    "startingDirectory": "C:\\Users\\user1\\desktop\\"
}
Run Code Online (Sandbox Code Playgroud)

我见过 -nologo 等标志,但我没有命令行来传递它。

windows powershell powershell-core windows-terminal

16
推荐指数
1
解决办法
6655
查看次数

在.NET中通过线路移动对象最有效的方法是什么?

我一直在使用WebServices来传输数据,这对我很有帮助.它擅长发送小块数据.只要您必须移动具有大量属性的深层对象树,生成的XML汤就会获取100k的数据并将其转换为1MB.

所以我尝试过IIS压缩,但它让我不知所措.它压缩数据很好,但权衡是压缩/解压缩.然后我通过BinaryFormatter序列化对象并将其发送出去.然而,这更好,编码/解码的速度仍然存在.

无论如何,我听说我被困在00s,现在有更好的方法通过网络发送数据,如ProtocolBuffers,MessagePack等...

有人能告诉我这些新协议是否更适合发送大量数据,以及我是否缺少其他有效的方法来执行此操作?

通过有效,我的意思是带宽量,编码/解码速度,实施速度等......

.net c# compression serialization

15
推荐指数
2
解决办法
842
查看次数