小编Jos*_*osh的帖子

如何将int转换为小端字节数组?

我在C#中使用此函数将一个小端字节数组转换为整数:

int LE2INT(byte[] data)
{
  return (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0];
}
Run Code Online (Sandbox Code Playgroud)

现在我想把它转换回小端..有点像

byte[] INT2LE(int data)
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

谢谢.

c# bit-manipulation

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

.NET中管理单独(单个)线程上任务队列的最佳方式

我知道异步编程多年来已经发生了很多变化.我有点尴尬,我让自己在34岁时就生锈了,但我依靠StackOverflow让我加快速度.

我想要做的是在一个单独的线程上管理一个"工作"队列,但是这样一次只能处理一个项目.我想在这个线程上发布工作,它不需要将任何内容传递给调用者.当然,我可以简单地旋转一个新Thread对象并让它在一个共享Queue对象上循环,使用睡眠,中断,等待句柄等.但是我知道事情从那以后变得更好.我们有BlockingCollection,Task,async/ await,更不用提的NuGet包,可能抽象了很多的.

我知道"什么是最好的..."这些问题通常是不受欢迎的,所以我会通过说"目前推荐的是什么......"的方式来改进它,最好使用内置的.NET机制来完成这样的事情.但是如果第三方NuGet包简化了一堆东西,它也是如此.

我认为一个TaskScheduler固定最大并发度为1 的实例,但似乎现在可能没那么笨重的方法了.

背景

具体来说,我在这种情况下尝试做的是在Web请求期间排队IP地理定位任务.相同的IP可能会多次排队等待地理定位,但是任务将知道如何检测并尽快跳过,如果它已经解决了.但请求处理程序只是将这些() => LocateAddress(context.Request.UserHostAddress)调用抛入队列,让该LocateAddress方法处理重复的工作检测.我正在使用的地理位置API不喜欢被请求轰炸,这就是我想一次将它限制为单个并发任务的原因.但是,如果允许通过简单的参数更改轻松扩展到更多并发任务,那将是很好的.

.net c# concurrency asynchronous task-parallel-library

23
推荐指数
5
解决办法
4万
查看次数

WPF在触发器中设置边框背景

我需要创建一个触发器,当MouseEnter发生时,它将更改Border背景属性.我做了以下事情:

<Border Width="20" Height="30" Focusable="True">
        <Border.Background>
            <LinearGradientBrush>
                <LinearGradientBrush.GradientStops>
                    <GradientStop Color="Aquamarine" Offset="0"/>
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </Border.Background>
        <Border.Style>
            <Style TargetType="{x:Type Border}">
                <Style.Triggers>

                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush>
                                    <LinearGradientBrush.GradientStops>
                                        <GradientStop Color="Aquamarine" Offset="0"/>
                                        <GradientStop Color="Beige" Offset="0.2"/>
                                        <GradientStop Color="Firebrick" Offset="0.5"/>
                                        <GradientStop Color="DarkMagenta" Offset="0.9"/>
                                    </LinearGradientBrush.GradientStops>
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
    </Border>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.谢谢.

wpf triggers background

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

如何安全地阅读PowerShell .PSD1文件

PowerShell模块清单文件格式(.psd1)本质上是一个具有预期某些键的Hashtable文字.这是PowerShell脚本的配置文件的理想选择.我最终想要做的是读取包含一组特定于脚本的键的.psd1文件.

例如(MyScriptConfig.psd1):

@{
    FTPHost = "ftp.blah.com"
    FTPUserName = "blah"
    FTPPassword = "blah"
}
Run Code Online (Sandbox Code Playgroud)

没有理由我不能使用XML,INI,JSON或其他任何信息,但我宁愿使用与PowerShell的模块清单相同的基本数据格式.

显然,最简单的方法是读取文本并将其传递给Invoke-Expression返回Hashtable 的文本,然后它会调用文件中的任何内容,这很容易出错并且可能不安全.

我以为我召回了一个用于使用PowerShell cmdlet的"安全"子集读取此数据的cmdlet,但我正在考虑ConvertFrom-StringDataDATA部分,这些都不允许我读取包含Hashtable文字的任意文件.

PowerShell中是否有内置功能可以让我这样做?如果没有内置任何东西,那么我可能会使用JSON或Key = Value的路径ConvertFrom-StringData.

powershell

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

WPF:旋转矩形并将其放在画布中

我有一个旋转矩形的问题,并以某种方式将其放在画布上.这是我试图实现的目标:

旋转矩形http://www.freeimagehosting.net/uploads/79844652d2.jpg

图片中的大矩形是我的画布.较小的矩形是我要旋转的矩形.当我旋转矩形(虚线矩形)时,它当然会被剪裁.为了避免这种情况,我想重新定位矩形,如右图所示.

这是我到目前为止尝试的方式:

Rectangle rect = new Rectangle();
rect.Width = 100;
rect.Height = 50;
int angle = 30;
rect.RenderTransform = new RotateTransform(angle, rect.Width/2, rect.Height/2);
canvas.Children.Add(rect);

double x = Math.Cos(30) * (rect.Width / 2) + Math.Sin(30) * (rect.Height / 2) - rect.Width / 2;
double y = Math.Sin(30) * (-rect.Width / 2) + Math.Cos(30) * (rect.Height / 2) - rect.Height / 2;
Canvas.SetLeft(rect, x);
Canvas.SetTop(rect, y);
Run Code Online (Sandbox Code Playgroud)

我认为要做到这一点的最好办法是计算偏移x,y和矩形定位Canvas.SetLeftCanvas.SetTop.但我在弄清楚如何进行数学运算时遇到了问题.(y计算似乎有效).

实际上我想在画布上随机放置几个矩形.旋转角度可以是-45度到45度之间的值,矩形尺寸也可以是随机值.但是矩形应该总是在画布中完全可见,所以我需要知道位置坐标边界的偏移.(矩形可以重叠.)

我希望你理解我的问题.如果你可以帮助我,那将是件好事.

wpf

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

为什么SQL Server默认不强制使用WHERE子句?

对我来说似乎没什么好事.我听过很多关于人们在UPDATE或DELETE中忘记WHERE子句并且废弃整个表的故事.我知道粗心的人不应该直接发出查询而且所有这些...并且存在您希望影响所有行的合法情况,但是默认情况下有一个选项需要这样的查询才有意义写得像:

UPDATE MyTable SET MyColumn = 0 WHERE *
Run Code Online (Sandbox Code Playgroud)

或者不改变语言,

UPDATE MyTable SET MyColumn = 0 WHERE 1 = 1 -- tacky, I know
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

11
推荐指数
4
解决办法
3415
查看次数

实现IConvertible.GetTypeCode

我知道,我在挑剔.但是当在仅包含布尔值(因此只有两个状态)的结构上实现IConvertible接口时,建议的返回值是IConvertible.GetTypeCode()多少?该结构是可隐式转换的,与布尔值相当,除了字符串和XML表示之外几乎所有方面,它实际上都是一个布尔值.

如果我回来的话,我觉得我对框架撒谎,TypeCode.BooleanTypeCode.Object似乎不必要地含糊不清.在您自己的结构中实现此方法有任何实际后果吗?

MSDN上的IConvertible.GetTypeCode

.net

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

为什么事件在.NET中没有返回类型?

事件也"做"类似方法,但它们没有返回类型和空洞?

我很想知道,为什么会这样?他们为什么不返回类型?

.net events

7
推荐指数
2
解决办法
6162
查看次数

PHP Powershell命令

试图在php中运行以下命令来运行powershell命令...

以下作品:

$output = shell_exec(escapeshellcmd('powershell get-service | group-object'));
Run Code Online (Sandbox Code Playgroud)

我无法像这样运行它:

$output = shell_exec('powershell get-service | group-object');
Run Code Online (Sandbox Code Playgroud)

它不会通过管道 字符

但如果我试图运行:

$output = shell_exec(escapeshellcmd('powershell get-service | where-object {$_.status -eq "Running"}'));
Run Code Online (Sandbox Code Playgroud)

我没有输出.

下列:

$cmd = escapeshellcmd('powershell get-service | where-object {$_.status -eq "Running"}');
Run Code Online (Sandbox Code Playgroud)

收益:

powershell get-service ^| where-object ^{^$_.status -eq ^"Running^"^}
Run Code Online (Sandbox Code Playgroud)

有关为什么会发生这种情况以及如何解决此问题的任何建议?

编辑:我也可以将其作为.ps1脚本运行,但我希望能够将$ var传递给它.

php powershell

7
推荐指数
1
解决办法
8769
查看次数

对于实现接口的无用对象,是否存在可识别的模式?

例如,(虽然它不是接口).NET中的Stream类有一个由Stream.Null提供的实现,它只是丢弃数据.PowerShell有Out-Null.

在我开发的应用程序中,我经常发现使用默认实现NullFoo或类似的实现接口IFoo很有用,因为它最好有一个无用的实现,而不是根本不传递一个对象.

我的问题是如何在记录或解释架构时参考这种做法?是否有公认的名称或GoF/Fowler设计模式?

design-patterns interface

6
推荐指数
2
解决办法
349
查看次数