我有:
instance1 = instance2;
Run Code Online (Sandbox Code Playgroud)
如何将它们彼此断开,以便改变一个不会影响另一个?
编辑:我希望他们引用相同的对象(所以我不能克隆),后来 - 不是.但我仍然想要这个类的两个实例 - 所以我不能'空'它们.
谢谢
编辑:
myclass a = new myclass();
a.integer = 1;
myclass b = new myclass();
b.integer = 2;
a = b;
//All changes to one will affect the other, Which is what I want.
//<More lines of the program>
//Now I want 'a' to point to something else than 'b'. and I’m missing the code
//so that the next line will not affect 'b'.
a.integer = 1;
Text = b.integer.ToString(); …Run Code Online (Sandbox Code Playgroud) 我在一个类中有字段,我想将它们移动到另一个类.创建新字段的工作并不多.然而,将他们所有的参考文献从他们所在的班级改为现在 - 是.
'重命名'不接受'myClass.Field'为有效.使用Find-and-Replace进行更改是唯一的选项(尽管那时我必须检查每次出现因为名称相同的变量)?或者有一种简单的方式,如'重命名'?
我正在尝试优化我拥有的代码.为了做到这一点,我编写了这段代码来看看递归与迭代的效果.代码"计数"到10到n次幂.
public Form1()
{
InitializeComponent();
Stopwatch sw = new Stopwatch();
sw.Start();
recurse(4);
//iterate(4);
sw.Stop();
Text = sw.Elapsed.TotalMilliseconds.ToString();
}
void recurse(int i)
{
if (i < 1) return;
for (int x = 0; x < 10; x++) recurse(i - 1);
}
void iterate(int i)
{
i = (int)System.Math.Pow(10, i);
for (int x = 0; x < i; x++) ;
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个意想不到的结果:当n为1到4时,递归和迭代的速度大约为0.5 ms. - 而不是4比1慢1000倍,这是我的预期.只有更大的数字才开始具有更直观的速度,迭代也比递归更快.
为什么相同的速度10倍和10,000倍?
我在可视化Web开发人员中创建了一个新的Web应用 我看到"Site.Master"的标题(代码中)是:
<div class="title">
<h1>
My ASP.NET Application
</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
所以我打开了"Site.css"并添加了:
h1
{
font-size: 1.6em;
padding-bottom: 0px;
margin-bottom: 0px;
color:Blue;
}
Run Code Online (Sandbox Code Playgroud)
但是,显示"Default.aspx"不会以蓝色显示文本("我的ASP.NET应用程序").为什么?
编辑:从源代码:
<body>
<form runat="server">
<div class="page">
<div class="header">
<div class="title">
<h1>
My ASP.NET Application
</h1>
Run Code Online (Sandbox Code Playgroud)
所以我color: Blue;在主体,页面,标题,标题和h1下添加了css.我重建了,并按了Ctrl+ F5.没有帮助.我在IE和Firefox中尝试这个.
我希望我的程序与自定义文件类型相关联,以便单击该类型的文件将使用我的程序打开它.
我已经看到我可以通过以下方式实现:Properties-> Publish-> Options-> File associations.但我不知道应该以ProgID的形式输入什么.
我有那个文件.(在"...\Program Files\Microsoft SDKs ..."中).然后我去安装程序(在控制面板中)并"重新安装"它.
那么为什么命令提示符不能识别呢?
我正在编写一个应用程序,在用户使用它之后 - 他可以"重置"它并再次使用它.实际使用会创建一些对象,包括控件.
我使用Process Explorer检查了内存使用情况并发现当使用应用程序时 - 内存使用量有所增加,但当应用程序"重置"时 - 内存使用率几乎没有下降.
因此,在'重置'我Dispose的所有Controls递归,甚至添加一个GC.Collect();启动.但Process Explorer -> (app's-) Properties -> .Net CLR Memory仍然显示堆上的很多东西和大量的内存使用.
这(必然)是内存泄漏吗?为什么强制GC没有帮助?
编辑:
我添加了GC.Collect();just for debugging - 用于确定是否存在泄漏.在GC工作之前,我并不担心"临时泄漏",我只是试图找出是否有对象永远不会超出范围(虽然我还没有找到它们)或者它只是一个问题时间,记忆将被收回.
在做类似的事情时... = myFileInfo.FullName- 是否访问驱动器或者是否通过创建myFileInfo将其加载到内存中?
我想避免这种情况.我试过了:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
Run Code Online (Sandbox Code Playgroud)
(从HTML5 doctype将IE9置于怪癖模式?)并且:
<meta http-equiv=”X-UA-Compatible” content=”IE=9? />
Run Code Online (Sandbox Code Playgroud)
(来自父框架的禁用怪癖模式)
但没有帮助.当我做F12 - 文档模式IE9标准 - 页面显示正常.
有解决方案吗
asp.net html5 internet-explorer cross-browser internet-explorer-9
我想检查整个列表中一次太长的路径,然后才复制/创建它们......
所以我觉得这样会很好:
try
{
FileInfo file = new FileInfo(path);
string temp = file.FullName;
}
catch { }
Run Code Online (Sandbox Code Playgroud)
但是,没有抛出异常.
我宁愿不对硬限进行硬编码,因为它们可能会改变,我可能会错过限制......
那么如何检查长路径呢?