是否有任何优雅的方式将某种风格应用于<input type="text">IE6下的所有元素?我可以用一些JavaScript来做,但我想知道是否有一种更优雅的方式.
注意 - 我无法手动将某个类应用于所有文本框.我想避免使用CSS表达式.
我想在C++中实现上面提到的两个图像重采样算法(bicubic和Lanczos).我知道有很多现有的实现,但我仍然想做自己的.我想部分原因是因为我想了解它们是如何工作的,部分是因为我想给它们一些在主流实现中找不到的功能(比如可配置的多CPU支持和进度报告).
我试过读维基百科,但这些东西对我来说太干了.也许对这些算法有一些更好的解释?我在SO或Google上找不到任何东西.
补充:似乎没有人可以给我一个关于这些主题的良好链接.任何人都可以至少尝试在这里解释一下吗?
尽管有些人可能会说,但我相信代码完成(又称Intellisense)是代码编辑器(第一个是语法着色)的第二个最佳发明.它确实使编码更容易,因为我不必担心我是否命名了函数CalculateReportSums,ReportSumsCalculate或者只是GetReportSums.
不幸的是,我还没有找到一个能够令人满意地为PHP实现此功能的代码编辑器.而"令人满意"的意思是"与Visual Studio for C#一样好".
我首选的文本编辑器是Notepad ++,但它只有PHP的内置函数列表,只有在你按Ctrl + SPACE后才能显示.我也尝试过Eclipse + PDT,它更好,但仍然经常出现打嗝,有时完全失败没有明显的原因(没有列表可用),并且只有在我暂停键入时才会出现(将超时设置为某个小值会导致列表不要完全出现).
所以 - 那里有更好的东西吗?能够了解当前范围中的所有变量的东西,能够跟随include()s,并且在我输入时会实时显示列表吗?
我知道PHP是一种动态语言,完整的代码完成原则上是不可能的(因为你不知道在运行之前会有什么变量),但它仍然可以在相当好的程度上实现它 - 很多比我到目前为止看到的更好.
补充:添加几个小点 - 我希望CC是即时的,就像在Visual Studio中一样.我输入一个字符,列表会在同一时刻显示.我输入另一个字符,列表变成一半,然后我甚至可以闪烁.CPU使用率几乎为零,即时结果(所有人都欢呼神的缓存!).
另外 - 我可以用特殊的方式记录我的函数甚至变量.我更喜欢PHPLint语法(因为之后我可以用它检查我的代码),但其他语法也可以.强制执行此操作对您的评论规则也有好处.:)
啊,你不喜欢一个好的三元滥用吗?:)考虑以下表达式:
true ? true : true ? false : false
Run Code Online (Sandbox Code Playgroud)
对于那些现在完全感到困惑的人,我可以告诉你,这个评估是真的.换句话说,它等同于:
true ? true : (true ? false : false)
Run Code Online (Sandbox Code Playgroud)
但这可靠吗?我能否确定在某些情况下不会出现这种情况:
(true ? true : true) ? false : false
Run Code Online (Sandbox Code Playgroud)
有些人可能会说 - 好吧,只需添加括号或完全不使用它 - 毕竟,众所周知,三元运算符是邪恶的!
当然它们是,但在某些情况下它们确实有意义.对于好奇的 - 我正在拧干通过一系列属性比较两个对象的代码.如果我像这样冷写它会很好:
obj1.Prop1 != obj2.Prop1 ? obj1.Prop1.CompareTo(obj2.Prop1) :
obj1.Prop2 != obj2.Prop2 ? obj1.Prop2.CompareTo(obj2.Prop2) :
obj1.Prop3 != obj2.Prop3 ? obj1.Prop3.CompareTo(obj2.Prop3) :
obj1.Prop4.CompareTo(obj2.Prop4)
Run Code Online (Sandbox Code Playgroud)
简洁明了.但它确实取决于三元运算符的相关性,就像第一种情况一样.括号只会使意大利面条脱离它.
那么 - 这是指定的吗?我找不到它.
如果你需要从1到N生成素数,那么"愚蠢"的方法就是迭代从2到N的所有数字并检查这些数字是否可以被到目前为止找到的任何素数除以小于有问题的数字的平方根.
在我看来,Eratosthenes的筛子做了同样的事情,除了其他方式 - 当它找到一个素数N时,它标记所有N的倍数的数字.
但是,当你找到N时是否标记X,或者你检查X是否可以被N除可,基本的复杂性,大O保持不变.你仍然按照数字对进行一次恒定时间操作.事实上,愚蠢的算法一旦找到一个素数就会中断,但是Eratosthenes的筛子会多次标记每个数字 - 一次对于每个素数它都可以被分割.对于除素数之外的每个数字,这是最少两倍的操作.
我在这里误解了什么吗?
当我引用两个具有相同命名空间和类型名称的外部程序集时,我遇到了不太可能发生的情况.当我尝试使用该类型时,编译器抛出一个错误,它无法解析我想要使用的那个.
我看到C#提供了一种为引用使用别名的机制.您甚至可以通过PropertyVisual Studio 2008中的引用窗口指定这些别名.如何在代码中使用此别名?据我所知,我应该使用::运算符,但它失败并出现以下错误:
CS0432 - Alias not found
通常的.操作员也会失败.
在输出窗口中,我看到编译器在其命令行中正确传递了别名.
关于我接下来可能尝试的任何指示都非常感谢.
我有一个像工厂一样的对象方法.你给它一个类型,它创建一个实例并做一些其他的事情.一个优雅的方式(在我看来)是这样的:
public T MagicMethod<T>() where T: SomeBaseClass
{
// Magic goes here
}
Run Code Online (Sandbox Code Playgroud)
但是这让FxCop感到不安,他说这是一个糟糕的风格 - 我得到一个"CA1004:通用方法应该提供类型参数"警告.关于不使用推理和东西的事情.所以,我能想到的另一种方式是这样的:
public SomeBaseClass MagicMethod(Type T)
{
// Same magic goes here
}
Run Code Online (Sandbox Code Playgroud)
我认为这不如许多帐户的第一种方法,但风格规则......关于警告的MSDN文章甚至说没有理由压制它.
我是否通过抑制此警告来做到这一点?
我是C++业余爱好者.我正在编写一些Win32 API代码,并且有句柄和奇怪的复合分配对象.所以我想知道 - 是否有一些包装类可以使资源管理更容易?
例如,当我想加载一些数据时,我打开一个文件CreateFile()并得到一个HANDLE.当我完成它之后,我应该呼吁CloseHandle()它.但是对于任何相当复杂的加载函数,将会有许多可能的退出点,更不用说例外了.
因此,如果我可以将句柄包装在某种类型的包装类中会很好,它会CloseHandle()在执行一次离开范围后自动调用.更好的是 - 它可以进行一些引用计数,因此我可以将其传入和传出其他函数,并且只有在最后一个引用离开范围时它才会释放资源.
这个概念很简单 - 但标准库中有类似的东西吗?顺便说一下,我正在使用Visual Studio 2008,而且我不想附加像Boost这样的第三方框架.
我理解异步和多线程编程,我已经完成了两个并且可以轻松完成它们.然而有一件事仍然让我感到困惑:为什么普遍认为异步比多线程表现更好?(补充说:我说的是这两种方法都可行并且你可以做出选择的情况)
乍一看原因似乎很清楚 - 更少的线程,更少的OS调度工作,更少的内存浪费堆栈空间.但是......我不觉得这些论点有用.让我们分别看看它们:
Task在堆上分配了单独的对象,而不是精简堆栈框架,基本上每个堆栈框架都包含状态和局部变量以及回调引用和所有内容.此外,它在整个地址空间中都是碎片化的,这给CPU缓存带来了更多麻烦,因为预取将毫无用处.那么......我错过了房间里的哪头大象?
c# ×3
.net ×2
algorithm ×2
performance ×2
alias ×1
asynchronous ×1
big-o ×1
c++ ×1
css ×1
factory ×1
generics ×1
ide ×1
jpeg ×1
namespaces ×1
parameters ×1
php ×1
raii ×1
resampling ×1
standards ×1
types ×1