我有一个字符串数组,有点像这样:
["x", "foo", "y", "bar", "baz", "z", "0"]
Run Code Online (Sandbox Code Playgroud)
我需要为每个X,Y和Z或其他特殊关键字拆分数组.
我试过用它来分割数组[x,y,z].split(y)
,但我很确定split()
它只适用于字符串.
关键字(x,y和z)必须是数组中的第一个.我怎样才能做到这一点?
这就是我想要得到的:
[
["x", "foo"],
["y", "bar", "baz"],
["z", "0"]
]
Run Code Online (Sandbox Code Playgroud) 是否可以使用System.Drawing.Image的FromStream方法而不必在图像的生命周期内保持流打开?
我有它加载了一堆从资源文件工具栏的图形,使用的组合应用程序Image.FromStream
和Assembly.GetManifestResourceStream
.
我遇到的问题是在Windows 7上工作正常,在Windows XP上,如果禁用链接到其中一个图像的用户界面元素,应用程序将崩溃.在Windows 7上,图像以灰度渲染.在XP上,它因内存不足异常而崩溃.
经过大量的脱毛后,我终于将它追溯到图像的初始加载.当然,如果我创建任何实现的对象IDisposable
也在同一个方法中被销毁,我将它包装在using语句中,例如
using (Stream resourceStream = assembly.GetManifestResourceStream(resourceName))
{
image = Image.FromStream(resourceStream);
}
Run Code Online (Sandbox Code Playgroud)
如果我删除using语句以便不处理流,则应用程序不再在XP上崩溃.但我现在有一堆"孤儿"流 - 图像存储在命令类中,这些图像在处理时正确处理图像,但原始流不是.
我检查了文档,FromStream
确认流需要保持打开状态.为什么这个没有在Windows 7开发系统上崩溃和烧毁是一个谜!
我真的不希望这个流徘徊,我当然不希望存储对这个流以及图像的引用,以便我以后可以处理它.我只需要那个流一次,所以我想摆脱它:)
是否有可能创建图像,然后杀死那里的流?
在.net中,AIUI int
只是一个语法糖System.Int32
,它是一个struct
.
csharp> typeof(System.Int32).IsPrimitive
true
csharp> typeof(System.Int32).Equals(typeof(int))
true
Run Code Online (Sandbox Code Playgroud)
我在源头看到:
https://github.com/mono/mono/blob/master/mcs/class/corlib/System/Int32.cs http://referencesource.microsoft.com/#mscorlib/system/int32.cs
这System.Int32
只是参考一个m_value
本身的成员来定义int
- 这是如何工作的?当然,我们是int
根据自己定义的?那么我们如何避免循环定义呢?
预先选择<option>
a 的最佳做法是<select>
什么?
根据不同的网站,两者都有效.但哪一个更好?最兼容?
<option selected="selected">Foo</option>
<option selected>Bar</option>
Run Code Online (Sandbox Code Playgroud) 有没有办法在C#控制台应用程序中编辑文本?换句话说,是否可以在命令行上放置预定义的文本,以便用户可以修改文本然后将其重新提交给应用程序?
我正在使用Visual Studio 2012 Ultimate版本开发一个带有所有Service Pack,C#和.NET Framework 4.5的WinForm应用程序.
我得到这个例外:
Internal .Net Framework Data Provider error 1
Run Code Online (Sandbox Code Playgroud)
有了这个堆栈:
en System.Data.ProviderBase.DbConnectionInternal.PrePush(Object expectedOwner)
en System.Data.ProviderBase.DbConnectionPool.PutObject(DbConnectionInternal obj, Object owningObject)
en System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory)
en System.Data.SqlClient.SqlConnection.CloseInnerConnection()
en System.Data.SqlClient.SqlConnection.Close()
en AdoData.TRZIC.DisposeCurrentConnection()
en AdoData.TRZIC.Finalize()
Run Code Online (Sandbox Code Playgroud)
在析构函数中:
~TRZIC()
{
DisposeCurrentConnection();
if (this.getCodeCmd != null)
this.getCodeCmd.Dispose();
}
private void DisposeCurrentConnection()
{
if (this.conn != null)
{
if (this.conn.State == ConnectionState.Open)
this.conn.Close();
this.conn.Dispose();
this.conn = null;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了例外this.conn.Close();
.
而且conn
是private SqlConnection conn = null;
你知道为什么吗?
int
并object
有一个无参数的构造函数.为什么不string
呢?
我目前正在教同事.Net,他问我一个困扰我的问题.
我们为什么要申报?
如果var是隐式类型,为什么我们甚至要声明?
Animal animal = new Animal();
Run Code Online (Sandbox Code Playgroud)
变
var animal = new Animal();
Run Code Online (Sandbox Code Playgroud)
可能成为
animal = new Animal();
Run Code Online (Sandbox Code Playgroud)
隐式类型仍然意味着这是一个静态类型的变量.
如果为变量分配了两种不同的类型,如果它们不共享基类(除了对象),则可能是编译器错误.
是否有技术原因无法完成或风格上我们喜欢有没有
我遇到了一个我想了解的C#行为.考虑这样一个类:
public class SomeSingleton
{
public static SomeSingleton Default = new SomeSingleton();
private static int field = 0;
private SomeSingleton()
{
field = 1;
}
public int GetField()
{
return field;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,让我们调用GetField()方法:
var field = SomeSingleton.Default.GetField();
Run Code Online (Sandbox Code Playgroud)
我得到的0
好像是跳过了实例构造函数.为什么?
c# ×7
.net ×6
clr ×3
ado.net ×1
arrays ×1
command-line ×1
console ×1
constructor ×1
declaration ×1
destructor ×1
html ×1
html-select ×1
image ×1
int ×1
javascript ×1
split ×1
static ×1
stream ×1
string ×1
variables ×1
wpf ×1