你如何处理.NET项目中的外部库(C#)?
可能的情况可能是:
我建议将外部库放在文件服务器上,创建一个复制本地脚本并将其映射到替代驱动器(例如R驱动器)并引用每个lib及其名称和版本; 例如R:\MyLib\V1.0.0.0\mylib.dll或R:\YourLib\V1.3.2.1\yourlib.dll.copy-local脚本将2个文件从共享文件服务器复制到R:
我正在使用以下技术动态加载Javascript:
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "file.js";
document.body.appendChild(script);
Run Code Online (Sandbox Code Playgroud)
这是一种非常常见的方法.它也在这里讨论:http://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/
我知道如何在文件加载和执行后收到通知
我不知道的是,如果Javascript源文件的链接被破坏,我该如何得到通知.
谢谢
我正在尝试研究如何获取NSAttributedString并在iPad上的Core Text中使用它.我观看了一个WWDC视频(110),其中有幻灯片(但没有源代码),它描述了如何创建NSAttributedString,然后将其放入CTFramesetterRef:
CTFontRef helveticaBold = CTFontCreateWithName( CFSTR("Helvetica-Bold"), 24.0, NULL);
NSString* unicodeString = NSLocalizedString(@"TitleString", @"Window Title");
CGColorRef color = [UIColor blueColor].CGColor; NSNumber* underline = [NSNumber numberWithInt:kCTUnderlineStyleSingle|kCTUnderlinePatternDot];
NSDictionary* attributesDict = [NSDictionary dictionaryWithObjectsAndKeys:helveticaBold, (NSString*)kCTFontAttributeName, color, (NSString*)kCTForegroundColorAttributeName, underline, (NSString*)kCTUnderlineStyleAttributeName, nil];
NSAttributedString* stringToDraw = [[NSAttributedString alloc] initWithString:unicodeString attributes:attributesDict];
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(stringToDraw);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, NULL);
CFRelease(framesetter);
CTFrameDraw(frame, context);
CFRelease(frame);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个时,它会抛出错误:
从不兼容的指针类型传递'CTFramesetterCreateWithAttributedString'的参数1
CFAttributedString和NSAttributedString'免费桥接'?我已经在某处读过,这只适用于OSX,但这就是Apple在他们的演示中如何做到这一点......
谢谢!
:-Joe
如果你去这里:http://xcs.dyndns.info/piataterenuri/vinde.php你可以看到页脚出现.
但是如果你去http://xcs.dyndns.info/piataterenuri/vinde2.php这里,你可以看到textarea之后没有显示任何内容.
这两者之间唯一的区别是第二个有:
<tr>
<td class="optiune">Info:</td>
<td> <textarea cols="30" rows="5" class="field"/></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
在今天的上一个问题中,这两种不同的方法被作为答案提出问题.
我们有一个可能会或可能不会实现的对象IDisposable.如果是的话,我们想要处理它,如果不是我们什么也不做.这两种不同的方法是:
1)
if(toDispose is IDisposable)
(toDispose as IDisposable).Dispose();
Run Code Online (Sandbox Code Playgroud)
2)
IDisposable disposable = toDispose as IDisposable;
if( disposable != null )
disposable.Dispose();
Run Code Online (Sandbox Code Playgroud)
主要是,从评论中可以看出,共识是2)是最好的方法.
但看看差异,我们归结为:
1)在toDispose上执行两次强制转换.
2)仅执行一次转换,但创建一个新的中间对象.
我猜测2会慢一点因为它必须分配一个新的局部变量,所以为什么这被认为是这种情况下的最佳解决方案?这完全是因为可读性问题?
我最近与同事讨论过是否应该允许将null或空集合作为方法参数传递.我的感觉是,这会导致异常,因为它会破坏方法的"契约",即使它不一定会破坏方法的执行.这也具有"快速失败"的优点.我的同事辩称,这会导致代码乱丢"非空/非空"检查,即使它不重要.
我可以看到他的观点,但允许空或空参数让我感到不安.它可以通过延迟失败来隐藏问题的真正原因!
我们来看两个具体的例子:
1)鉴于我们有一个带有重叠(Interval)方法的Interval类,如果将null作为参数传递会发生什么?我的感觉是我们应该抛出一个IllegalArgumentException来让调用者知道某些东西可能是错误的,但我的同事觉得返回false是足够的,就像在他使用它的场景中一样,如果第二个Interval是是否为空(重要的是它们是否重叠).
2)给定一个像fetchByIds(Collection ids)这样的方法,如果提供一个空集合会发生什么?再一次,我想警告打电话者发生了异常情况,但我的同事只是收到一个空列表就好了,因为他再一次并不关心是否有任何ids.
被叫代码的责任在哪里结束?在这两种情况下,调用代码都不介意参数是null还是空,但在其他情况下,这可能指向可能的错误.一个方法是否只保证只要遵守先决条件就不会破坏,或者它是否应该尝试识别潜在的错误调用?
编辑:我看到了很多很好的答案,大多数人倾向于将其定义为合同/在文档中,并坚持使用它,但我希望你的意见何时允许它,何时不允许(如果有的话).在具体的例子中,你会做什么?鉴于90%的用途,没有验证输入将是正常的,你仍然会验证清除剩余的10%中的错误,或者你宁愿解决那些出现的问题,并避免不必要的空/空检查?
喂!
我想只专注于两种模板类型中的一种.例如,template <typename A, typename B> class X对于单个函数应该有一个特殊的实现X<float, sometype>::someFunc().
示例代码:
main.h:
#include <iostream>
template <typename F, typename I>
class B
{
public:
void someFunc()
{
std::cout << "normal" << std::endl;
};
void someFuncNotSpecial()
{
std::cout << "normal" << std::endl;
};
};
template <typename I>
void B<float, I>::someFunc();
Run Code Online (Sandbox Code Playgroud)
main.cpp中:
#include <iostream>
#include "main.h"
using namespace std;
template <typename I>
void B<float, I>::someFunc()
{
cout << "special" << endl;
}
int main(int argc, char *argv[])
{
B<int, int> …Run Code Online (Sandbox Code Playgroud) ArrayList aList = new ArrayList();
List aList = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
这两者之间有什么区别,哪个更好用,为什么?
堆内存大小在2gig和~8gig之间大约每分钟一次(参见图片).
相关细节:
我对内存调整没有什么经验,但似乎MaxPermSize与Xms和Xmx完全不同.或者这是正常的吗?
