Tag: C#的

C#Form.Close与Form.Dispose

我是C#的新手,我试图看看以前的post,但没有find一个好的答案。 在具有单一窗体的C#Windows窗体应用程序中,是使用Form.Close()更好还是Form.Dispose() ? MSDN说,对象内的所有资源都closures,表单被调用时closures。 尽pipe如此,我在网上遇到了一些遵循Dispose而不是Close的例子。 一个人比另一个人有优势吗? 在哪种情况下,我们应该比另一种情况更喜欢?

我如何获得当前目录在MSBuild脚本?

在我的MSBuild脚本中,我需要传递完整的目录作为参数。 怎么能得到它? 例如:我从C:\ dev运行脚本,我想要一个相对pathtemp,所以我在C:\ dev \ temp之后 注意:我不知道脚本将从哪个文件夹运行。

如何使一个asynchronous方法返回一个值?

我知道如何使asynchronous方法,但说我有一个方法,做了很多工作,然后返回一个布尔值? 如何返回callback布尔值? 澄清 : public bool Foo(){ Thread.Sleep(100000); // Do work return true; } 我想能够使这个asynchronous。

在C#WinForms中的ToggleButton

是否有可能在C#WinForms中创build切换button? 我知道你可以使用一个CheckBox控件,并把它的Appearance属性设置为“Button”,但是看起来不正确。 当按下时,我希望它看起来下沉,不平坦。 有什么想法吗?

什么时候使用List <KeyValuePair <T1,T2 >>而不是Dictionary <T1,T2>?

KeyValuePair列表和相同types的字典之间有什么区别? 有没有适当的时间使用其中一种?

将callback函数传递给另一个类

我基本上是试图传递一个方法到另一个类,稍后调用,但不能完全弄清楚在C#中(我仍然习惯于Objective-C)。 public class Class1{ private void btn_click(object sender, EventArgs e) { ServerRequest sr = new ServerRequest(); sr.DoRequest("myrequest", myCallback); } public void myCallback(string str) { } } 然后,我想我的ServerRequest类基本上触发callback函数,这是不可能的? (我基本上打电话回家的服务器login回应我的软件) 我一直没有find办法与代表这样做,不断地得到错误。 这是另一个class级: public class ServerRequest { public void DoRequest(string request, Delegate callback) { // do stuff…. callback("asdf"); } } 这可能在#中吗? 在Objective-C中,这将是简单的,我会做一些像 [myObject performSelector(@selector(MyFunctionName)) withObjects:nil];

在C#中使用扩展方法时出错

我遇到了一个问题,使我认为在3.0框架中有bug。 当我尝试使用扩展方法时,出现以下错误: Missing compiler required member 'System.Runtime.CompilerServices.ExtensionAttribute..ctor' 使用这个简单的代码时: public static class StringUtils { static void TestExtension(this String targetString) { } } 使这个编译错误消失的唯一方法是添加以下代码: namespace System.Runtime.CompilerServices { public class ExtensionAttribute : Attribute { } } 我已经使用了扩展方法已经有几个月了,但是我很确定我不需要这样做。 有没有其他人遇到过这个问题?

在C ++中使用min和max函数

从C ++, min和max优于fmin和fmax ? 为了比较两个整数,它们是否提供了基本相同的function? 你倾向于使用这些函数集合还是你更喜欢自己编写(也许是为了提高效率,可移植性,灵活性等)? 笔记: C ++标准模板库(STL)在标准C ++ algorithm头中声明min和max函数。 C标准(C99)在标准C math.h头文件中提供了fmin和fmax函数。 提前致谢!

为什么我需要使用Rfc2898DeriveBytes类(.NET),而不是直接使用密码作为密钥或IV?

使用Rfc2898DeriveBytes和只使用Encoding.ASCII.GetBytes(string object);什么区别Encoding.ASCII.GetBytes(string object); ? 两种方法我都取得了相对的成功,前者是一种更为冗长的方法,后者简单而重要。 两者似乎都允许你最终做同样的事情,但我正在努力看到使用前者而不是后者。 我已经能够掌握的基本概念是,可以将string密码转换为字节数组,以用于例如对称encryption类AesManaged 。 通过RFC类,但你创build你的rfc对象时,你可以使用salt值和密码。 我认为它更安全,但仍然是一个没有受过教育的猜测! 此外,它允许您返回一定大小的字节数组,以及类似的东西。 这里有几个例子来向你展示我来自哪里: byte[] myPassinBytes = Encoding.ASCII.GetBytes("some password"); 要么 string password = "P@%5w0r]>"; byte[] saltArray = Encoding.ASCII.GetBytes("this is my salt"); Rfc2898DeriveBytes rfcKey = new Rfc2898DeriveBytes(password, saltArray); 现在可以使用'rfcKey'对象来设置对称encryptionalgorithm类中的.Key或.IV属性。 即。 RijndaelManaged rj = new RijndaelManaged (); rj.Key = rfcKey.Getbytes(rj.KeySize / 8); rj.IV = rfcKey.Getbytes(rj.Blocksize / 8); 'rj'应该准备好了! 令人困惑的部分…所以,而不是使用“rfcKey”对象,我可以不使用我的'myPassInBytes'数组来帮助设置我的'rj'对象? […]

如何在C#中获取用户的公共IP地址

我想要使​​用我的网站的客户的公共IP地址。 下面的代码显示局域网中的本地IP,但是我想要客户端的公共IP。 //get mac address NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); String sMacAddress = string.Empty; foreach (NetworkInterface adapter in nics) { if (sMacAddress == String.Empty)// only return MAC Address from first card { IPInterfaceProperties properties = adapter.GetIPProperties(); sMacAddress = adapter.GetPhysicalAddress().ToString(); } } // To Get IP Address string IPHost = Dns.GetHostName(); string IP = Dns.GetHostByName(IPHost).AddressList[0].ToString(); 输出: IP地址:192.168.1.7 […]