我正在使用C#,.net 3.5和Visual Studio 2008.
在阅读了一些关于何时必须处理元素的内容后,我有点困惑.以下Paint事件处理程序是否可以,或者它是内存泄漏?
private void ProgressBar_Paint(object sender, PaintEventArgs e) {
Graphics graphics = e.Graphics;
string rightText = "rightext";
string leftText = "lefttext";;
string textToDraw = rightText + leftText;
graphics.DrawString(textToDraw, progressBar.Font,
new SolidBrush(progressBar.ForeColor), 10, 30);
}
Run Code Online (Sandbox Code Playgroud)
这会好吗?
private void ProgressBar_Paint(object sender, PaintEventArgs e) {
Graphics graphics = e.Graphics;
string rightText = "rightext";
string leftText = "lefttext";;
string textToDraw = rightText + leftText;
using (SolidBrush solidBrush = new SolidBrush(progressBar.ForeColor)) {
graphics.DrawString(textToDraw, progressBar.Font, solidBrush, 18, 20);
}
}
Run Code Online (Sandbox Code Playgroud) 我们正在使用azure云服务来发布我们的应用程序.对于重大更改,我们将通过创建和上传包进行发布,但是对于较小的更改,我们通过使用远程计算机将相应的dll移动到实例.
我们将dll移动到站点根目录下的文件夹中.
我们的问题是,两天前我们注意到通过增量(即通过复制dll)所做的更改已经丢失,我们保存在桌面上的文件夹也丢失了.
最近,我一直在进行类型绑定的测试,该绑定实现INotifyPropertyChanged了工作线程抛出跨线程问题并更新了属性。
这是示例代码:
public class MyViewModel : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler hanlder = PropertyChanged;
if(hanlder != null)
hanlder(this, new PropertyChangedEventArgs(propertyName));
}
}
Run Code Online (Sandbox Code Playgroud)
上面的viewmodel已与Windows窗体中的标签文本绑定,并从工作线程更新标签值。
从辅助线程更新label1文本会导致跨线程问题:
public partial class MainForm : Form
{
private MyViewModel _myViewModel = new MyViewModel();
public MainForm()
{
InitializeComponent();
Btn1.Click += Btn1_Click; …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到此代码的时间复杂度。
for (int i = 0; i <= n - 1; i++)
for (int j = i + 1; j <= n - 1; j++)
for (int k = j + 1; k <= n - 1; k++)
Run Code Online (Sandbox Code Playgroud)
我的尝试:我们可以将这个循环写成以下形式:
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
for (int k = 1; k <= n; k++)
Run Code Online (Sandbox Code Playgroud)
现在这个循环的大哦是 O(n^5)。我是正确的还是做错了什么?
如何执行多个策略(或将它们合并为一个策略)?
例如我有:
var policy1 = Policy.Handle< DivideByZeroException >().WaitAndRetry(5));
var policy2 = Policy.Handle< StackOverflowException >().RetryForever();
Run Code Online (Sandbox Code Playgroud)
如何同时将它们应用于一种方法?
我试图在.NET Core中重新创建代码,我得到的错误和亮点无助于解决问题.
这是代码:
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
string content = File.ReadAllText("input.xml");
XmlDocument doc = new XmlDocument();
doc.LoadXml(content.Trim());
XmlWriter writer = XmlWriter.Create("output.xml");
doc.Save(writer);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试将Referece"System.Xml"添加到依赖项中,但它会生成新的错误.
我试图使用HtmlAgilityPack.NETCore获取网页将网页加载到程序中。问题在于调试直接从第一个Using语句跳出,因此根本不调用代码和第二个using。没有异常或其他东西被抛出。程序以退出代码0结尾。我在做什么错?我正在使用.net Core 2.2
HttpClient client = new HttpClient();
List<string> htmlContent = new List<string>();
using (var response = await client.GetAsync(URL))
{
using (var content = response.Content)
{
var result = await content.ReadAsStringAsync();
var document = new HtmlDocument();
document.LoadHtml(result);
foreach (HtmlNode node in document.DocumentNode.SelectNodes("//text()"))
{
htmlContent.Add(node.InnerText);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我的项目是在Blazor WASM 中创建的(我不想使用 Blazor 服务器)
我想从 wwwroot 读取 XSD 文件:
在我的 XsdService.cs - C# 类中,我正在尝试:
string pathToXsd = Path.Combine("plcda","extPL_r2.xsd");
string transformataHTML = System.IO.File.ReadAllText(pathToXsd);
Run Code Online (Sandbox Code Playgroud)
但是,我总是收到错误:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Could not find a part of the path "/plcda/extPL_r2.xsd".
System.IO.DirectoryNotFoundException: Could not find a part of the path "/plcda/extPL_r2.xsd".
Run Code Online (Sandbox Code Playgroud)
那么是否有机会将自定义/静态/本地文件包含到 Blazor WASM 中?即使应用程序离线也能阅读它们?
c# progressive-web-apps blazor blazor-client-side blazor-webassembly
我正在尝试以PostAsJsonAsync与PostJsonAsync更新之前相同的方式使用它,但我收到此错误:
CS1503 参数 3:无法从“ICCR.Shared.LoginModel”转换为“ICCR.Shared.LoginResult” ICCR.Client
代码中的 registerModel 标记为红色,如果您告诉我如何解决,我将不胜感激。
public async Task<RegisterResult> Register(RegisterModel registerModel)
{
var result = await _httpClient.PostAsJsonAsync<RegisterResult>("api/accounts", registerModel);
return result;
}
Run Code Online (Sandbox Code Playgroud)