在我的API编码期间,我遇到了很多关于通用引用类型与通用值类型的差异的混淆.
伙计们,问题是这两种野兽之间在约束和功能(最重要/容易被忽视的)方面有什么不同:
class ReferenceGeneric <T> where ???
{
}
Run Code Online (Sandbox Code Playgroud)
和
struct ValueGeneric <T>: where ???
{
}
Run Code Online (Sandbox Code Playgroud)
编辑只是为了澄清问题和我所追求的:我想知道你可以用通用引用类型做什么而不能用通用值类型...反之亦然
编辑#2进一步澄清:如果泛型类型是引用类型或值类型,那么如何限制T-是否存在关于如何约束每种类型的差异?
请考虑以下Python代码:
30 url = "http://www.google.com/search?hl=en&safe=off&q=Monkey" 31 url_object = urllib.request.urlopen(url); 32 print(url_object.read());
运行此命令时,将抛出异常:
File "/usr/local/lib/python3.0/urllib/request.py", line 485, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
Run Code Online (Sandbox Code Playgroud)
但是,当将其放入浏览器时,搜索将按预期返回.这里发生了什么?我怎样才能克服这个问题,以便以编程方式搜索Google?
有什么想法吗?
IronPython和BOO有什么区别?是否需要2种类似Python的语言?
我认为标题涵盖了所有内容.我使用控件来显示一些带有一些标记的基本HTML,并且可能还有链接.我想要做的是强制点击任何链接以在新的IE窗口中打开此链接,而不是导航到控件本身的该页面.
任何的想法?
忙着学习Ruby ......文档有一个例子:
返回2的"你好世界".count("lo","o")如何返回2?
在我的例子中,我将:"Lennie".count("Le","ie")返回2.
伯爵在这方面如何运作?
我似乎无法让这个工作,这是我的(剥离)代码: -
[XmlRoot("report")]
public class Report
{
[XmlArray("sections"), XmlArrayItem("section")]
public List<Section> Sections;
}
public class Section
{
public Report Report;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我一直在自定义应用程序中使用Java Service包装器已经有一段时间了,它一直运行良好.由于在最近几天将我们的应用程序更新到新版本,JVM开始挂起,然后包装器在日志中打印出来:JVM出现挂起:超时等待来自JVM的信号.
然后它会自动终止JVM并再次启动应用程序.这在大约10个小时的运行后发生,这使得调试变得更加困难.
当然,我将查看我们所做的更改,但没有做出重大更改,我怀疑是会导致此类问题.
我在哪里可以尝试找出发生了什么?来自应用程序的调试消息并不表示任何有趣的内容 如果JVM崩溃了,它通常会创建一个转储,这可以帮助调试它,但它是挂起的,所以它不会创建转储.如果我没有自动重启服务,我可以做些什么来重新启动它之前从JVM中获取一些有用的信息?
在我看来,JVM不应该挂起典型的编程错误.你之前遇到什么会导致JVM挂起?
在.Net中,整数是值类型,这意味着它存储在堆栈中.整数也是类(通常是System.Int32).他们有像CompareTo,Equals,......这样的方法,它们应该在堆栈上占用超过四个字节.下面的例子显示它们只占用4个字节:
unsafe static void Main()
{
int a = 2, b = 4;
Console.WriteLine("Adress of a : {0}", (int)&a);
Console.WriteLine("Adress of b : {0}", (int)&b);
Console.WriteLine("Size of integer: {0}", (int)(&a) - (int)(&b));
}
Run Code Online (Sandbox Code Playgroud)
输出:
Adress of a : 1372876
Adress of b : 1372872
Size of integer: 4
Run Code Online (Sandbox Code Playgroud)
CLR是否对整数和其他值类型(float,long,double,...)进行特殊处理?
我正在寻找一个提供完整或接近完整的LINQ支持的ORM.
LINQ to SQL
- 支持LINQ内部的所有内容(.Contains,Math.Log等)
- 如果不创建新的datacontext,就无法加载关系属性
ADO.NET实体框架
- 可怕的LINQ支持(许多缺少的功能).
- 出色的映射功能 - 可以使用ObjectQuery <>上的.Include方法按需加载
LightSpeed
- 很棒的LINQ支持缺少一些功能(.Contains在where中)
- 生成的一些SQL非常低效.
这些似乎都不完美,我真的希望我可以从每个中获取点点滴滴.我个人非常喜欢ADO.NET EF,除了它缺少的功能使它使用起来很令人沮丧.
我知道有些人上下赞美NHibernate而且我没有敲它,但我今天花了很多时间尝试它并且没关系但是它的LINQ支持并不是那么好.
我注意到在同一台机器上,C#的编译时间远远少于C++.为什么?
注1:我没有做过任何科学基准.
注意2:在有人说这与编程无关之前,我正在实现一个解析器,我发现我可以从get get中做些什么来提高编译速度.
注3:我有一个类似的问题为什么汇编需要这么长时间?.这个问题询问了从C/C++到C#的具体差异.很明显,简单的语言编译比复杂的语言更快,但C和C#都是复杂的语言.
我的内容:1)C/C++从预处理器和头文件中缓慢.2)很多标头会导致更多的数据被解析.特别是当每个文件都可以使用预处理器时可以更改代码3)C#推迟一些编译到程序启动4)IL指令很简单,机器不是