小编AFg*_*one的帖子

如何设置枚举标志的所有位

我想知道将enum标志的所有位设置为1 的通用方法.我只想enum为所有比较返回一个,而不管其他枚举.

这段代码有效;

[Flags]
public enum SomeRightEnum : uint
{
    CanDoNothing = 0,
    CanDoSomething = 1 << 0,
    CanDoSomethingElse = 1 << 1,
    CanDoYetAnotherThing = 1 << 2,
    ...
    DoEverything = 0xFFFFFFFF 
}
Run Code Online (Sandbox Code Playgroud)

但是在上面的代码中,因为它是uint我们设置"F"的数量,如果是的话它将不起作用int.

所以,我会感激的所有位设置的一个通用的方法enum标志为1,而不管数据类型(iNT, int64,uint等)

c# enums enum-flags

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

System.Threading.Timer一段时间后没有触发

我有一个Windows服务应用程序.并通过在控制台模式下运行来调试它.

在这里http://support.microsoft.com/kb/842793 写道,Timers.Timer有一个错误,而不是在Windows服务中触发.解决方法是使用Threading.Timer本文适用于.NET 1.0和1.1

我使用的是.NET 4,但经过一段时间Threading.Timer也没有开火.那可能是什么原因呢?你能建议什么作为解决方法?

谢谢,

最好的祝福

编辑:我将计时器从Threading.Timer更改为Timers.Timer,它没有任何问题.

.net c# timer .net-4.0

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

为什么 OpenFileDialog RestoreDirectory 没有实现?

我在 wpf 应用程序中使用 Microsoft.Win32.OpenFileDialog,因为它在此处声明为等效;http://msdn.microsoft.com/en-us/library/ms750559.aspx

我将 RestoreDirectory 属性设置为 true,但它没有任何效果。当我等待该属性时,记录为“此属性未实现”。

那么如何在不自己实现逻辑的情况下完成这项任务呢?

wpf openfiledialog

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

计算字体大小以适合特定宽度的文本

我有一个大小不断变化的图像,我想知道我应该使用哪种字体大小来适应动态变化的大小。

如您所知,有一种Graphics.MeasureString方法可以计算字符串的大小。一种可能的方法是测量每个字体大小,直到找到最合适的字体大小,但由于我需要在一秒钟内渲染很多帧,因此性能影响太大了。

给定特定的图像宽度,是否有更有效的方法来查找字体大小?

c# gdi+

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

字符串序列化和反序列化问题

我正在尝试序列化/反序列化字符串。使用代码:


       private byte[] StrToBytes(string str)
       {
            BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream(); bf.Serialize(ms, str); ms.Seek(0, 0); return ms.ToArray(); } private string BytesToStr(byte[] bytes) { BinaryFormatter bfx = new BinaryFormatter(); MemoryStream msx = new MemoryStream(); msx.Write(bytes, 0, bytes.Length); msx.Seek(0, 0); return Convert.ToString(bfx.Deserialize(msx)); }

Run Code Online (Sandbox Code Playgroud)

如果我使用字符串变量,那么这两个代码可以正常工作。

但是,如果我反序列化一个字符串并将其保存到文件中,则在阅读了后面的内容并再次对其进行序列化之后,我只会得到字符串的第一部分。所以我相信我的文件保存/读取操作有问题。这是我保存/读取的代码


private byte[] ReadWhole(string fileName)
        {
            try
            {
                using (BinaryReader br = new BinaryReader(new FileStream(fileName, FileMode.Open)))
                {
                   return br.ReadBytes((int)br.BaseStream.Length);
                }
} catch (Exception) { return null; }
} private void WriteWhole(byte[] wrt,string fileName,bool …
Run Code Online (Sandbox Code Playgroud)

c# serialization

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

如何更改datagridview中第一行的可见性

我使用的是datagridview,它的数据源是BindingList.但是当我尝试更改第一行的可见性时,我收到了InvalidOperationException.如何更改第一行的可见值?

提前致谢.

c# visibility datagridview

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

如何在C#中将委托转换为对象?

我正在使用反射类来调用某些其他dll上的方法.其中一个方法的参数是委托的类型.

我想通过使用反射来调用这些方法.所以我需要将函数参数作为对象数组传递,但我找不到任何关于如何将委托转换为对象的内容.

提前致谢

c# delegates object

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