我是否可以在派生类中使用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) 这闻到了吗?
我有一些你只能设置一次的属性.它们可以在对象存在期间的任何时间设置,并且无法撤消.
我就是这样实现的.
private FooThingy _foo;
public FooThingy Foo
{
set { if (null == _foo) _foo = value; }
get { return _foo; }
}
Run Code Online (Sandbox Code Playgroud)
但我不喜欢它.我觉得我错过了什么.我有没有?
编辑:为什么我没有在构造函数中.
我不能进入细节,但设置这个结果是<不好的比喻>融化蜡像</坏比喻>.而且我不希望我的构造函数创建已经融化的对象.
在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到适当的整数类型是非法的.我确信有充分的理由......
我正在编写一个图像二值化算法,它只是将每个像素的亮度值(灰度图像)转换为黑色或白色.目前,用于二值化每个像素的算法大致是这样的
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)反过来也可以工作......只要我可以摆脱分支声明...任何帮助赞赏..
我试着看看有关这方面的其他问题,但没有去.我试过直接调用另一个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) 如何检测我的应用是为“所有用户”安装的还是仅为一位用户安装的。
今天,我检查安装程序中的文件Environment.SpecialFolder.CommonApplicationData或Environment.SpecialFolder.ApplicationData由我的安装程序放置的文件。
有没有更好的办法?
文章的链接也将受到赞赏 - 我不知道要搜索的术语.
我正在研究Web应用程序如何允许服务器到客户端的通信.我知道网络不是为此而设计的,而且它是一个障碍,我只是想知道这是什么状态,以及最佳实践是什么.
另一种方法是通过ajax进行常规或偶尔轮询,但是Web服务器是否可以维护与Web客户端的状态连接?
编辑:另一种问这个问题的方法是StackOverflow如何告诉页面新帖子可用于在顶部显示那个小栏?
我的Google fu让我失望了.如何使用Perl提供已生成的图像?
例:
<html><body><img src="getimage.pl"></body></html>
Run Code Online (Sandbox Code Playgroud)
getimage.pl中包含哪些内容?
我正在尝试阅读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
人们,我确信这很容易,但谷歌没有帮助......
这是任务 - 我有两个字节数组(作为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上).