Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

25
生成随机密码
当我们网站上的用户丢失密码并转到“丢失密码”页面时,我们需要为他提供一个新的临时密码。我真的不介意这有多随机,或者如果它与所有“需要的”强密码规则匹配,我要做的就是给他们提供一个密码,以后可以更改。 该应用程序是用C#编写的Web应用程序。所以我当时想变得刻薄,并选择使用Guid的简单方法。即 Guid.NewGuid().ToString("d").Substring(1,8) 建议?有什么想法吗?
229 c#  passwords  random 

10
创建其构造函数需要参数的泛型类型的实例?
如果BaseFruit有一个接受的构造函数,int weight我可以用这种通用方法实例化一块水果吗? public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } 在注释后面添加了一个示例。似乎只有提供BaseFruit无参数构造函数,然后通过成员变量填写所有内容,我才能做到这一点。用我的真实代码(不是关于水果),这是不切实际的。 -更新- 因此,看来无论如何都无法通过约束来解决。从答案中可以找到三种候选解决方案: 工厂模式 反射 活化剂 我倾向于认为反射是最不干净的一种,但是我无法在其他两种之间做出选择。
229 c#  .net  generics 

6
属性签名中C#中的=>赋值是什么
我遇到了一些说的代码 public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; 现在,我对Lambda表达式有所了解。我只是没有看到它以这种方式使用。 上面的陈述和 public int MaxHealth = x ? y:z;
229 c#  c#-6.0 



8
创建堆栈大小为默认值的50倍的线程有什么危险?
我目前正在开发一个性能非常关键的程序,因此决定探索一条可能有助于减少资源消耗的方法,这是增加工作线程的堆栈大小,以便我可以将要访问的大部分数据float[]移至堆栈(使用stackalloc)。 我已经读到,线程的默认堆栈大小是1 MB,因此,要移动我float[]的所有内存,我必须将堆栈扩展大约50倍(到50 MB〜)。 我了解这通常被认为是“不安全的”并且不建议这样做,但是在将当前代码与此方法进行基准比较之后,我发现处理速度提高了530%!因此,我不能在没有进一步调查的情况下简单地通过该选项,这使我提出了问题。将堆栈增加到如此大的尺寸有什么危险(可能会出问题),我应采取什么预防措施以最小化此类危险? 我的测试代码 public static unsafe void TestMethod1() { float* samples = stackalloc float[12500000]; for (var ii = 0; ii < 12500000; ii++) { samples[ii] = 32768; } } public static void TestMethod2() { var samples = new float[12500000]; for (var i = 0; i < 12500000; …
228 c#  .net  memory  stack-memory 

10
通过反射找到私人领域?
鉴于这个班 class Foo { // Want to find _bar with reflection [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } } 我想找到要用属性标记的私人物品_bar。那可能吗? 我已经在寻找属性的属性中做到了这一点,但是从来没有一个私有成员字段。 我需要设置哪些绑定标志才能获取私有字段?

9
使用FileResult在Asp.Net MVC中下载任何类型的文件吗?
我建议我使用FileResult允许用户从我的Asp.Net MVC应用程序下载文件。但是我能找到的唯一示例始终与图像文件有关(指定内容类型为image / jpeg)。 但是,如果我不知道文件类型怎么办?我希望用户能够从我网站的文件区域下载几乎所有文件。 我已经读过一种执行此操作的方法(有关代码,请参见上一篇文章),除了一件事外,它实际上可以正常工作:另存为对话框中出现的文件名是通过文件路径与下划线连接的( folder_folder_file.ext)。另外,似乎人们认为我应该返回FileResult而不是使用我发现BinaryContentResult的自定义类。 有人知道在MVC中进行这种下载的“正确”方法吗? 编辑:我得到了答案(如下),但只是认为如果有人有兴趣,我应该发布完整的工作代码: public ActionResult Download(string filePath, string fileName) { string fullName = Path.Combine(GetBaseDir(), filePath, fileName); byte[] fileBytes = GetFile(fullName); return File( fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); } byte[] GetFile(string s) { System.IO.FileStream fs = System.IO.File.OpenRead(s); byte[] data = new byte[fs.Length]; int br = fs.Read(data, 0, …
228 c#  asp.net-mvc-2 

18
C#中的数组切片
你怎么做呢?给定一个字节数组: byte[] foo = new byte[4096]; 我如何将数组的前x个字节作为单独的数组获取?(具体来说,我需要它作为IEnumerable<byte>) 这是与Sockets 一起使用的。我认为最简单的方法是数组切片,类似于Perls语法: @bar = @foo[0..40]; 它将前41个元素返回到@bar数组中。我只是想念C#中的某些东西,还是我应该做的其他事情? LINQ对我来说是一个选项(.NET 3.5),如果有帮助的话。
228 c#  arrays 


6
.AsNoTracking()有什么区别?
我对.AsNoTracking()扩展名有疑问,因为这都是很新的,也很令人困惑。 我正在为网站使用每个请求的上下文。 我的许多实体都不会更改,因此不需要跟踪,但是在以下情况下,我不确定数据库的内容,甚至不确定在这种情况下是否有所作为。 这个例子是我目前正在做的: context.Set<User>().AsNoTracking() // Step 1) Get user context.Set<User>() // Step 2) Update user 与上面相同,但是.AsNoTracking()从步骤1中删除了: context.Set<User>(); // Step 1) Get user context.Set<User>() // Step 2) Update user 步骤1和2使用相同的上下文,但是发生在不同的时间。我无法解决的是是否有任何区别。由于第2步是更新,因此我猜两者都将两次访问数据库。 谁能告诉我有什么区别?




11
可访问性不一致:参数类型比方法更难访问
我正在尝试在两种形式之间传递一个对象(基本上是对当前登录用户的引用)。目前,我在登录表单中有以下几行内容: private ACTInterface oActInterface; public void button1_Click(object sender, EventArgs e) { oActInterface = new ACTInterface(@"\\actserver\Database\Premier.pad",this.textUser.Text,this.textPass.Text); if (oActInterface.checkLoggedIn()) { //user has authed against ACT, so we can carry on clients oClientForm = new clients(oActInterface); this.Hide(); oClientForm.Show(); } else... 在下一张表格(客户)上,我有: public partial class clients : Form { private ACTInterface oActInt {get; set;} …
227 c#  object 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.