我正在从PHP迁移到C#.
在PHP中,使用抽象类来创建" 级联覆盖 "模式是简单而直接的,基本上" 基类方法将处理它,除非继承类具有具有相同签名的方法 ".
然而,在C#中,我花了大约20分钟在基础和继承类中尝试关键字new,virtual,abstract和override的各种组合,直到我最终得到了正确的组合来执行这种简单的级联覆盖模式.
因此,即使下面的代码按照我想要的方式工作,这些添加的关键字也向我建议C#可以用抽象类做更多的事情.我已经查找了这些关键字的示例,并基本了解它们的作用,但仍然无法想象除了这种简单的"级联覆盖"模式之外我会使用它们的真实场景.什么是一些现实世界中,你实现你的一天到一天的节目这些关键字的方法呢?
有效的代码:
using System;
namespace TestOverride23433
{
public class Program
{
static void Main(string[] args)
{
string[] dataTypeIdCodes = { "line", "wn" };
for (int index = 0; index < dataTypeIdCodes.Length; index++)
{
DataType dataType = DataType.Create(dataTypeIdCodes[index]);
Console.WriteLine(dataType.GetBuildItemBlock());
}
Console.ReadLine();
}
}
public abstract class DataType
{
public static DataType Create(string dataTypeIdCode)
{
switch (dataTypeIdCode)
{
case "line": …Run Code Online (Sandbox Code Playgroud) 我正在处理来自 Web 服务的大型 XML 响应。当我尝试使用 URL 获取该 URL 时,一段时间后它在 Firebug 中显示“脚本堆栈空间配额已用尽”错误,我该如何解决?
编辑:
得到了目录.现在还有另一个问题:
存储中的文件以其DB id作为其文件名的前缀进行存储.当然我不希望用户看到这些.
有没有办法将response.redirect和标题设置结合起来,文件名和大小?
最好,
A
Run Code Online (Sandbox Code Playgroud)
你好,我们又见面了,
新的方法:
是否可以在tomcat中创建一个类似虚拟目录的IIS,以避免流式传输并且只使用头重定向?我在环境中玩耍但却无法实现......
有任何想法吗?
thx
Run Code Online (Sandbox Code Playgroud)
一个
嗨%,
我正面临着java堆空间的连线问题,这个问题已经接近我的绳索.
简短版本是:
我写了一个ContentManagementSystem,它也需要处理大文件(> 600mb).Tomcat堆设置:
-Xmx700m -Xms400m
问题是,上传巨大的文件虽然很慢,但仍可正常工作.下载文件会导致java堆空间异常.
尝试下载370mb文件会使tomcat跳转到500mb堆(应该没问题)并以Java堆空间异常结束.
我不明白,为什么上传工作和下载不?这是我的下载代码:
byte[] byt = new byte[1024*1024*2];
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
FileInputStream fis = null;
OutputStream os = null;
fis = new FileInputStream(new File(filePath));
os = response.getOutputStream();
BufferedInputStream buffRead = new BufferedInputStream(fis);
while((read = buffRead.read(byt))>0)
{
os.write(byt,0,read);
os.flush();
}
buffRead.close();
os.close();
Run Code Online (Sandbox Code Playgroud)
如果我说得对,缓冲的读者应该处理任何内存问题,对吧?
任何帮助都会受到高度赞赏,因为我没有想法
最好的祝福,
w ^
是否有可用的最佳实践和代码片段,说明如何在Delphi控制台应用程序中处理Ctrl + C?
我找到了一些文章,它们提供了一些关于调试器可能存在的问题的信息,包括异常处理,DLL的卸载,stdin的关闭,以及例如这个CodeGear论坛线程的最终化.
我希望将声音整合到一个网站中.基本上是一个聊天网站,用户在收到新消息时会听到声音.您认为整合声音的最佳方式是什么?
感谢您的时间.
我需要从数据库(SQL Server)中的表中选择一些数据,并将其显示在SharePoint站点(MOSS 2007)的页面上.
我对MOSS有一点经验,所以我知道我有几个选择:
我从来没有真正使用过任何这些.任何人都可以提供每个+/-的建议吗?
关于如何在表中存储网站用户密码的主题在SO上出现了几次,一般的建议是存储密码的哈希,最终是HMAC哈希.这适用于基本身份验证或基于表单的身份验证(实际上是相同的).我的问题是我必须提供摘要式身份验证,针对连接到我的服务的自动化工具.我一直在看这个问题,正如我所看到的,我可以存储的唯一哈希是摘要的HA1部分:哈希username : realm : password.这样我就可以验证Basic/forms和Digest.
我的问题是,我认为没有任何好处.现在,如果攻击者获取了我的密码表(因为他只有哈希值并且需要发送清除密码),攻击者确实无法使用基本或基于表单的身份验证,但是没有什么能阻止他使用摘要式身份验证并提供有效的响应对我的服务挑战:他只是从表中的预先计算的HA1开始,并继续从那里制作响应(即我在后端验证用户的同样的事情).
我错过了什么吗?添加摘要要求是否基本上使散列密码的存储成为安全pov的无操作,最好是混淆?
我有一个类型的层次结构--GenericClass和一些派生类,包括InterestingDerivedClass,GenericClass是多态的.有一个界面
interface ICallback {
virtual void DoStuff( GenericClass* ) = 0;
};
Run Code Online (Sandbox Code Playgroud)
我需要实现.然后我想检测传递给ICallback :: DoStuff()的GenericClass*指针实际上是指向InterestingDerivedClass的指针的情况:
class CallbackImpl : public ICallback {
void DoStuff( GenericClass* param ) {
if( dynamic_cast<InterestingDerivedClass*>( param ) != 0 ) {
return; //nothing to do here
}
//do generic stuff
}
}
Run Code Online (Sandbox Code Playgroud)
GenericClass和派生类是我无法控制的,我只控制CallbackImpl.
我对dynamic_cast语句进行了定时 - 它需要大约1400个周期才能接受,但看起来不是很快.我试着在调试器中读取dynamic_cast期间执行的内容的反汇编,看到它需要很多指令.
因为我真的不需要指向派生类的指针,是否有更快的方法在运行时使用RTTI检测对象类型?也许某些特定于实现的方法只检查"是一个"关系但不检索指针?
我正在使用guice进行依赖注入,而不是aopalliance.我无法弄清楚什么是aopalliance所有关于谁以及谁实现了他们的sourceforge页面上的版本(日期为2004年).为什么guice使用这个版本而不是像AspectJ这样更知名的包?
另外,你知道关于aopalliance版本的任何教程吗?
谢谢
aop ×1
aopalliance ×1
audio ×1
c# ×1
c++ ×1
console ×1
decompiling ×1
delphi ×1
dynamic ×1
guice ×1
java ×1
javascript ×1
jquery ×1
memory ×1
moss ×1
mozilla ×1
polymorphism ×1
security ×1
sharepoint ×1
tomcat ×1
vb.net ×1
visual-c++ ×1
xml ×1