我无法理解背后的逻辑,List<int>因为它打破了一些基本规则.
List<int> 应该是值类型而不是引用类型.
List<int>ref如果必须在函数调用之间保持其值,则必须通过关键字传递.所以这意味着它正在显示类似于int的值类型行为.List<int>必须由新的运营商初始化.也List<int>可以为null.这意味着引用类型行为.可空类型是不同的,因为它不必由新运算符初始化.
我在这看错了吗?
EDITED-
我应该在原始问题中发布代码.但它遵循 -
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ListTest d = new ListTest();
d.Test();
}
}
class ListTest
{
public void ModifyIt(List<int> l)
{
l = returnList();
}
public void Test()
{
List<int> listIsARefType = new List<int>();
ModifyIt(listIsARefType);
Console.WriteLine(listIsARefType.Count); // should have been 1 but is 0
Console.ReadKey(true);
}
public List<int> returnList()
{
List<int> t = new List<int>();
t.Add(1); …Run Code Online (Sandbox Code Playgroud) 据说不建议将IIS用于Comet编程.如果这是真的,那么其他Web服务器如何能够通过IIS处理这个问题.那么其他Web服务器还能做什么呢?它们可以扩展出来.
在使用第三方DLL时,我遇到以下异常:
不在独立的exe内部运行时必须指定exePath
具有以下痕迹
System.Configuration.ConfigurationManager.OpenExeConfigurationImpl(ConfigurationFileMap fileMap,Boolean isMachine,ConfigurationUserLevel userLevel,String exePath).
我找到的原因是它正在寻找app.config,我在web.config中提供了详细信息.我的问题是:为什么system.configuration会区分web.config和app.config?有什么想法吗?
我有一个WCF服务,必须将接口公开为datacontract.接口有两个派生类.WCF服务将返回派生类型的对象.客户端必须将其强制转换为派生类.在客户端这可能吗?.我的方法应该是什么?
我们使用File.WriteAllBytes将数据写入磁盘.但是如果在我们关闭文件的时候发生重启,则windows会向文件添加null.这似乎发生在Windows 7上.所以一旦我们回到文件,我们在文件中看到空值.有没有办法防止这种情况发生.窗户是否会在一段时间后关闭它的内部手柄并且可以立即关闭它?
当客户端向Web服务器发送请求时.Web服务器是否打开一个新套接字?或者是用于新请求的现有开放套接字?如果它确实为每个新请求打开了一个套接字,那么这是如何管理的,因为Http是一个无状态协议.对于所有Web服务器也是如此,或者不同的Web服务器处理这种情况有何不同?
可能重复:
ASP用户控件中的JavaScript函数定义
嗨,
我有一个通用的用户控件,它将在页面中使用两次.有一个javascript与它相关,也需要添加.如何将此添加到页面,因为javascript将被多次添加.
我的Cocoa应用程序使用NSTextView.它是一种编辑器应用程序.现在在10.6中有字符替换,因此(c)成为版权.我的申请没有在10.6中进行替换.我没有添加任何额外的代码.但在10.7中,替代正在发生.这对刚刚迁移到狮子的客户造成了混乱.我知道我可以编写一个AppleScript来禁用语言和文本中的复选框.但还有其他选择吗?我也试过默认写-g WebAutomaticDashSubstitutionEnabled -bool false.
但这也行不通.
使用流阅读器在C#中打开文件时,文件将保留在内存中直到关闭.例如,如果程序使用streamreader打开大小为6MB的文件,则在文件末尾附加一行.程序是否将整个6 MB保留在内存中,直到文件关闭.OR是.Net代码在内部返回的文件指针,并在末尾附加行.因此程序不会占用6MB内存
可能重复:
c#中的List <int>
我有以下程序.我对输出感到困惑.
行 -
Console.WriteLine(listIsARefType.Count)打印0而不是1.任何想法为什么?
class Program
{
static void Main(string[] args)
{
ListTest d = new ListTest();
d.Test();
}
}
class ListTest
{
public void ModifyIt(List<int> l)
{
l = returnList();
}
public void Test()
{
List<int> listIsARefType = new List<int>();
ModifyIt(listIsARefType);
Console.WriteLine(listIsARefType.Count); // should have been 1 but is 0
Console.ReadKey(true);
}
public List<int> returnList()
{
List<int> t = new List<int>();
t.Add(1);
return t;
}
}
Run Code Online (Sandbox Code Playgroud)