小编Nif*_*fle的帖子

我如何使用baseclass中的eventhandler

我是否可以在派生类中使用ChangeHappend.如果是这样的话?
如果没有,我该怎么办呢?

class Base
{
    public delegate void ChangeHandler(object sender);
    public event ChangeHandler ChangeHappend;

    private int _foo;
    public int Foo
    {
        set
        {
            if (_foo == value) return;
            _foo = value;
            ChangeHappend(this);
        }
    }
}

class Derived : Base
{
    private int _bar;
    public int Bar
    {
        set
        {
            if (_bar == value) return;
            _bar = value;
            ChangeHappend(this); // This line gives an error. How can I use ChangeHappend here in Derived?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# delegates event-handling

4
推荐指数
1
解决办法
1726
查看次数

我应该使用set once变量吗?

这闻到了吗?
我有一些你只能设置一次的属性.它们可以在对象存在期间的任何时间设置,并且无法撤消.
我就是这样实现的.

    private FooThingy _foo;
    public FooThingy Foo
    {
        set { if (null == _foo) _foo = value; }
        get { return _foo; }
    }
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它.我觉得我错过了什么.我有没有?

编辑:为什么我没有在构造函数中.
我不能进入细节,但设置这个结果是<不好的比喻>融化蜡像</坏比喻>.而且我不希望我的构造函数创建已经融化的对象.

c#

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

static_cast wchar_t*to int*或short* - 为什么它是非法的?

在Microsoft VC2005和g ++编译器中,以下结果都会导致错误:

在win32 VC2005上:sizeof(wchar_t)是2

wchar_t *foo = 0;
static_cast<unsigned short *>(foo);
Run Code Online (Sandbox Code Playgroud)

结果是

error C2440: 'static_cast' : cannot convert from 'wchar_t *' to 'unsigned short *' ...
Run Code Online (Sandbox Code Playgroud)

在Mac OS X或Linux上g ++:sizeof(wchar_t)为4

wchar_t *foo = 0;
static_cast<unsigned int *>(foo);
Run Code Online (Sandbox Code Playgroud)

结果是

error: invalid static_cast from type 'wchar_t*' to type 'unsigned int*'
Run Code Online (Sandbox Code Playgroud)

当然,我总是可以使用reinterpret_cast.但是,我想了解为什么编译器认为static_cast到适当的整数类型是非法的.我确信有充分的理由......

c++ casting wchar-t

4
推荐指数
1
解决办法
3996
查看次数

通过位移操作替换分支语句

我正在编写一个图像二值化算法,它只是将每个像素的亮度值(灰度图像)转换为黑色或白色.目前,用于二值化每个像素的算法大致是这样的

if( grayscale[x] < thresholdValue)
{
bitonal[x] = 1;
}
Run Code Online (Sandbox Code Playgroud)

(这实际上是ACTUAL算法的简化,因为双色调图像实际上是一个bitpacked图像(每个数组索引保持8个像素)所以我实际上在当前数组索引中对1进行bitpack ...但我不认为这会改变我的题.

我试图做的是删除if语句的需要.

我在想的是按照这个方法做点什么.通过灰度减去thresholdValue,然后执行一些位操作技巧以清除或移位位,如果结果为(grayscale[x]-threshold) is less than 0, I get a 0. otherwise I would get a 1.如果它更容易做到(if grayscale[x]-threshold < 0 + bitwise trickery get a 1, else get a 0)反过来也可以工作......只要我可以摆脱分支声明...任何帮助赞赏..

algorithm bit-manipulation bit-shift conditional-statements

4
推荐指数
1
解决办法
778
查看次数

无法从另一个内部调用.bat文件 - "未被识别为内部或外部命令"错误

我试着看看有关这方面的其他问题,但没有去.我试过直接调用另一个bat文件(例如"otherBat.bat"),"call"命令,甚至是"start"命令.所有这些都失败了,我不知道为什么.两个.bat文件都在同一个文件夹中,我没有更改目录,所以我不知道问题是什么...

任何有关这方面的帮助将非常感谢^ _ ^

编辑:对不起,这是代码:)

primary.bat:

echo Test run...enter variable1
set /p var1=:


echo Test run...enter variable2
set /p var2=:


call other.bat %var1% %var2%

pause
Run Code Online (Sandbox Code Playgroud)

other.bat:

echo Working!
pause
Run Code Online (Sandbox Code Playgroud)

windows batch-file

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

知道是否为“所有用户”安装了应用程序

如何检测我的应用是为“所有用户”安装的还是仅为一位用户安装的。

今天,我检查安装程序中的文件Environment.SpecialFolder.CommonApplicationDataEnvironment.SpecialFolder.ApplicationData由我的安装程序放置的文件。

有没有更好的办法?

.net c#

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

服务器向Web客户端发送消息的最佳方式是什么?

文章的链接也将受到赞赏 - 我不知道要搜索的术语.

我正在研究Web应用程序如何允许服务器到客户端的通信.我知道网络不是为此而设计的,而且它是一个障碍,我只是想知道这是什么状态,以及最佳实践是什么.

另一种方法是通过ajax进行常规或偶尔轮询,但是Web服务器是否可以维护与Web客户端的状态连接?

编辑:另一种问这个问题的方法是StackOverflow如何告诉页面新帖子可用于在顶部显示那个小栏?

javascript asp.net ajax asp.net-mvc web-applications

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

如何使用Perl CGI脚本提供图像?

我的Google fu让我失望了.如何使用Perl提供已生成的图像?

例:

<html><body><img src="getimage.pl"></body></html>
Run Code Online (Sandbox Code Playgroud)

getimage.pl中包含哪些内容?

perl image

3
推荐指数
2
解决办法
6749
查看次数

无法加载文件或程序集System.EnterpriseServices

我正在尝试阅读asp.net mvc,我之前从未使用过asp.net,但熟悉常规的c#开发.

新安装,完全修补的Windows XP Home.
新安装的更新到SP1 Visual Studio 2008 Pro.

开始一个新项目,选择"ASP.NET MVC Web Application",目标框架是3.5

我点击F5然后得到:
"无法加载文件或程序集System.EnterpriseServices"

瑞典的准确措辞:

[FileNotFoundException: Det går inte att hitta filen. (Undantag från HRESULT: 0x80070002)]
[FileNotFoundException: Det går inte att läsa in filen eller sammansättningen System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller ett av dess beroenden. Det går inte att hitta filen.]
Run Code Online (Sandbox Code Playgroud)

在我的项目中添加对System.EnterpriseServices的引用不起作用.
一个快速谷歌建议我将此文件Microsoft.NET/Framework/v2.0.50727/System.EnterpriseServices.dll复制到%WINDOWS%/程序集,但这也无效.

有什么建议?

找到了答案,我用gacutil将其添加到GAC.

C:\ WINDOWS>"C:\ Program\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe"/ i Microsoft.NET/Framework/v2.0.50727/System.EnterpriseServices.dll

asp.net

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

如何覆盖两个图像(作为字节数组)

人们,我确信这很容易,但谷歌没有帮助......

这是任务 - 我有两个字节数组(作为ARGB),代表我的图像.它们的大小相同.我应该执行什么操作(逐字节)将一个图像叠加到另一个图像?第二张图像具有一定的透明度,必须予以考虑.

要清除,我正在寻找这样的代码:

          bytes[] result = new bytes[first.Length];
          for(i = 0; i< first.Lenght;i++)
          {
               result[i] = first[i] !!%SOMETHING%!! second[i];
          }
Run Code Online (Sandbox Code Playgroud)

简单的猜测,如按位OR(我知道 - 这是愚蠢的;))不起作用.

谢谢你的回答.

编辑:我不能使用标准库因为安全问题(所有这些奇怪的操作都发生在Silverlight上).

c# algorithm image bitmap

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