我一直在网上搜索ASP.net c#的代码示例,但他们似乎从未列出它们包含的名称空间,例如:
using System.Data.SqlClient;
etc etc
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了一些明显的东西,或者我应该准确地知道每个代码示例需要哪些命名空间?
我使用Visual Studio 2010在C#中编程.是否可以告诉我代码中没有使用哪些用法?
最初,此方法仅在出现任何问题时返回false,无论其类型如何.我想知道using如果异常将应用语句打破逻辑
是否可以以这种方式从using语句返回true值:
try
{
Measurements.DeleteAllMeasurements(ID);
string query = "DELETE FROM `Narz` WHERE `NAZk_1_ID`=@NAZ_ID";
using(OleDbConnection strukturaConnection = new OleDbConnection(CommonConnectionString + DbPath + strStructureMdb))
{
using (OleDbCommand command = new OleDbCommand(query, strukturaConnection);)
{
command.Parameters.Add("@NAZ_ID", OleDbType.Numeric, 50);
command.Parameters["@NAZ_ID"].Value = ID;
command.ExecuteNonQuery();
return true;
}
}
}
catch (Exception ex)
{
Logger.LogError(ex);
return false;
}
Run Code Online (Sandbox Code Playgroud)
或者我应该以另一种方式返回虚假?
我正在使用using声明来验证客户编号.
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
connection.Open();
using (SqlCommand cmdCheck = new SqlCommand("SELECT COUNT(CUSTOMER_NO) FROM WEBSITE_CUSTOMERS WHERE UPPER(CUSTOMER_NO) = '" + strCustomer.Trim().ToUpper() + "';", connection))
{
int nExists = (int)cmdCheck.ExecuteScalar();
if (nExists > 0)
return true;
else
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这是先前通过stackoverflow告诉我的代码,用于检查先前存在的记录...它工作得很好,但我想知道是否有一种方法可以使用它的参数作为客户编号,因为这个变量是通过表单输入的,我想保护它免受注射.在这样cmdCheck的using语句中,我在哪里创建参数?
我已经搜索了整个Stack Overflow,但我找不到以下答案:
当我使用我的OpenFileDialog时,我打开的文件被阻止使用我的程序,直到我关闭我的程序.因此,如果我打开图像,则不允许在Windows资源管理器中替换该图像.
我认为这是处理我的OpenFileDialog的问题,但我不知道如何解决它...
我的代码:
using (OpenFileDialog ofd = new OpenFileDialog())
{
ofd.Title = "Open Image";
ofd.Filter = "PNG Image(*.png|*.png" +
"|GIF Image(*.gif|*.gif" +
"|Bitmap Image(*.bmp|*.bmp" +
"|JPEG Compressed Image (*.jpg|*.jpg";
if (ofd.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(ofd.FileName);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为该using块可以解决这个问题,但是没有...它仍然被程序使用.我想在图片框中加载图像,然后我希望图像再次可用(所以我可以重命名,替换它等等).
我已经被赋予了Identicon使用Delphi 实现的任务.我搜索过互联网但仍然没有找到任何东西.那么我从哪里开始,这里有人可以给出解释吗?
所以我目前正在开发一个工作/工作得非常好的图像缩放器,但是当我一次处理太多图像时崩溃程序时它给了我一个OutOfMemoryException.
所以为了解决这个问题,我已经将方法包装在using语句中,这样可以正确处理Bitmaps.
但是我注意到如果我在using语句中返回我的Bitmap,我得到这个"ArgumentException未处理"消息
这是我的ImageResize方法:
public Bitmap ResizeImage(MemoryStream ms, Size size)
{
if (comboBox2.Text == "Pixel")
{
using (Bitmap img = new Bitmap(new Bitmap(ms, true), size.Width, size.Height))
{
var original = new Bitmap(ms, true);
Graphics graphic = Graphics.FromImage(img);
//IRRELEVANT CODE.....
return img;
}
}
else
{
return null;
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我尝试将图像保存在ImageResize方法之外时:
private void button1_Click(object sender, EventArgs e)
{
//IRRELEVANT CODE ...
img = ResizeImage(memory, new Size(getX(), getY()));
//IRRELEVANT CODE ...
img.Save(outputFileName, codec, encoderParams); //<-Exception occurs here
}
Run Code Online (Sandbox Code Playgroud)
当我删除using语句时,一切都工作得很好,但是我必须使用using块来处理Bitmap,以防止内存泄漏.此外,当我将图像保存在using语句中时,它也可以正常工作,但在我的情况下,这不是解决方案.
我究竟做错了什么?对我来说,似乎没有正确返回Bitmap.
我感谢任何帮助,并提前感谢Ravand
我经常使用"使用"块来处理对象.今天,我使用HttpWebRequest发布数据,我感到两种方法之间的混淆.
方法1:
var request = (HttpWebRequest)WebRequest.Create("http://www...");
using (var writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(JsonConvert.SerializeObject(content));
}
Run Code Online (Sandbox Code Playgroud)
方法2:
var request = (HttpWebRequest)WebRequest.Create("http://www...");
using (var stream = request.GetRequestStream())
using (var writer = new StreamWriter(stream))
{
writer.Write(JsonConvert.SerializeObject(content));
}
Run Code Online (Sandbox Code Playgroud)
在方法2中,所有流和streamwirter都在"使用"块中,因此肯定会被丢弃.但是在方法1中,我不确定流请求.GetRequestStream()将被处置.有谁可以向我解释一下?非常感谢!
代码段如下
public static string ToCompressedBase64(this string text)
{
using (var memoryStream = new MemoryStream())
{
using (var gZipOutputStream = new GZipStream(memoryStream, CompressionMode.Compress))
{
using (var streamWriter = new StreamWriter(gZipOutputStream))
{
streamWriter.Write(text);
}
}
return Convert.ToBase64String(memoryStream.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,如果class包含IDisposable字段,那么它应该实现IDisposable本身并负责处理拥有的对象,因此在这个假设下,在处理streamWriter之后,gZipOutputStream和memoryStream也将被处理掉.但是我们仍然不需要处理memoryStream来调用它上面的toArray()方法.
所以问题是,最后在memoryStream上调用ToArray()方法是否安全?
是否可以做类似的事情:
using MyCustomDto = (flag == "library1") ? MyLibrary1.Dtos.MyDto1 : MyLibrary2.Dtos.MyDto2;
Run Code Online (Sandbox Code Playgroud)
我不能为此找到正确的语法。因此,根据appsettings.config中的标志,我想从特定的库加载Dto,它们具有不同的名称空间,如您所见,这将是using指令块的一部分,在该块中,您通常会看到以下语句:
using System.Collections.Generic;
Run Code Online (Sandbox Code Playgroud) using ×10
c# ×9
.net ×4
idisposable ×3
asp.net ×2
.net-4.0 ×1
bitmap ×1
delphi ×1
dispose ×1
identicon ×1
parameters ×1
picturebox ×1
resize ×1
return ×1