我的代码如下
public CountryStandards()
{
InitializeComponent();
try
{
FillPageControls();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Country Standards", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
/// <summary>
/// Fills the page controls.
/// </summary>
private void FillPageControls()
{
popUpProgressBar.IsOpen = true;
lblProgress.Content = "Loading. Please wait...";
progress.IsIndeterminate = true;
worker = new BackgroundWorker();
worker.DoWork += new System.ComponentModel.DoWorkEventHandler(worker_DoWork);
worker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(worker_ProgressChanged);
worker.WorkerReportsProgress = true;
worker.WorkerSupportsCancellation = true;
worker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
}
private void worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
GetGridData(null, 0); // filling grid …Run Code Online (Sandbox Code Playgroud) 我有方法:
private static void Method()
{
Console.WriteLine("Method() started");
for (var i = 0; i < 20; i++)
{
Console.WriteLine("Method() Counter = " + i);
Thread.Sleep(500);
}
Console.WriteLine("Method() finished");
}
Run Code Online (Sandbox Code Playgroud)
我想在一个新的Task中启动这个方法.我可以开始这样的新任务
var task = Task.Factory.StartNew(new Action(Method));
Run Code Online (Sandbox Code Playgroud)
或这个
var task = Task.Run(new Action(Method));
Run Code Online (Sandbox Code Playgroud)
但是Task.Run()和之间有什么区别吗Task.Factory.StartNew()?它们都使用ThreadPool并在创建Task的实例后立即启动Method().当我们应该使用第一个变体和第二个?
有什么区别:
catch
{
MessageBox.Show("Error.");
}
Run Code Online (Sandbox Code Playgroud)
和:
catch (Exception ex)
{
MessageBox.Show("Error.");
//we never use ex, so is it better to use catch without arguments?
}
Run Code Online (Sandbox Code Playgroud) 有没有办法保持value绑定到对象,但有optionsValue一个属性在对象上.截至目前,如果我同时指定两者,optionsValue则所选的属性将填充value绑定.我希望在observable中保持对象完整,但是指定在选择列表值中设置的值.这样一个表单提交将发送optionsValue我选择的.
@Html.DropDownListFor(q => q.DivisionId, new SelectList(Enumerable.Empty<string>()), new { data_bind="options: divisions, optionsText: 'Name', optionsValue: 'Id', value: division, optionsCaption: ' - '" })
function AddCrossPoolGameDialog() {
var self = this;
self.divisions = ko.observableArray([]);
self.division = ko.observable();
self.awayDivisionTeams = ko.computed(function () {
var division = ko.utils.arrayFirst(self.divisions(), function(item) {
return self.division.Name() == item.Name;
});
if (division) {
return division.DivisionTeamPools;
}
return [];
});
}
Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何将变量添加到已在sendgrid模板引擎中创建的现有模板(例如:动态链接或名称),我不确定如何使用SendGrid C#.NET库执行此操作.我想知道是否有人可以帮助我.
// Create the email object first, then add the properties.
SendGridMessage myMessage = new SendGridMessage();
myMessage.AddTo("test@test.com");
myMessage.From = new MailAddress("test@test.com", "Mr test");
myMessage.Subject = " ";
var timestamp = DateTime.Now.ToString("HH:mm:ss tt");
myMessage.Html = "<p></p> ";
myMessage.EnableTemplate("<p> <% body %> Hello</p>");
myMessage.EnableTemplateEngine("9386b483-8ad4-48c2-9ee3-afc7618eb56a");
var identifiers = new Dictionary<String, String>();
identifiers["USER_FULLNAME"] = "Jimbo Jones";
identifiers["VERIFICATION_URL"] = "www.google.com";
myMessage.AddUniqueArgs(identifiers);
// Create credentials, specifying your user name and password.
var credentials = new NetworkCredential("username", "password");
// Create an Web transport for sending email. …Run Code Online (Sandbox Code Playgroud) 我为静态方法编写了一些单元测试。静态方法只接受一个参数。参数的类型是 final 类。在代码方面:
public class Utility {
public static Optional<String> getName(Customer customer) {
// method's body.
}
}
public final class Customer {
// class definition
}
Run Code Online (Sandbox Code Playgroud)
因此,对于Utility该类,我创建了一个测试类,UtilityTests在该类中我为此方法编写了测试getName。单元测试框架是TestNG,使用的模拟库是Mockito. 所以一个典型的测试具有以下结构:
public class UtilityTests {
@Test
public void getNameTest() {
// Arrange
Customer customerMock = Mockito.mock(Customer.class);
Mockito.when(...).thenReturn(...);
// Act
Optional<String> name = Utility.getName(customerMock);
// Assert
Assert.assertTrue(...);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是什么 ?
虽然测试在本地成功运行,但在 IntelliJ 中,它们在 Jenkins 上失败(当我将代码推送到远程分支时,会触发构建并在最后运行单元测试)。错误消息类似于以下内容:
org.mockito.exceptions.base.MockitoException: 不能模拟/监视类 com.packagename.Customer Mockito 不能模拟/监视,因为: - 最终类 …
我正在编写一个带有Roslyn的代码分析器,我需要检查它是否ExpressionSyntax是类型Task或Task<T>.
到目前为止我有这个:
private static bool IsTask(ExpressionSyntax expression, SyntaxNodeAnalysisContext context)
{
var type = context.SemanticModel.GetTypeInfo(expression).Type;
if (type == null)
return false;
if (type.Equals(context.SemanticModel.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task")))
return true;
if (type.Equals(context.SemanticModel.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task`1")))
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理为Task,但不适合Task<int>或Task<string>...我可以核对姓名和命名空间,但它是不切实际的,因为我要检查每个命名空间的"级别".
有推荐的方法吗?
我使用的语言是C#.
让
List<int> numbers = new List<int>();
Run Code Online (Sandbox Code Playgroud)
是一个整数列表,我们想用它们来做一些计算.访问列表的第一个元素是否更快?
numbers[0]
Run Code Online (Sandbox Code Playgroud)
或者作为
numbers.First()
Run Code Online (Sandbox Code Playgroud)
此外,如果我们想要访问列表的最后一个元素,则访问它的速度会更快
numbers[numbers.Count-1]
Run Code Online (Sandbox Code Playgroud)
或者作为
numbers.Last()
Run Code Online (Sandbox Code Playgroud) 我有folloiwng动作方法:
public JsonResult LoadSitesByCustomerName(string customername)
{
var customerlist = repository.GetSDOrg(customername)
.OrderBy(a => a.NAME)
.ToList();
var CustomerData;
CustomerData = customerlist.Select(m => new SelectListItem()
{
Text = m.NAME,
Value = m.NAME.ToString(),
});
return Json(CustomerData, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
但目前我收到以下错误var CustomerData;:
implicitly typed local variables must be initialized
Run Code Online (Sandbox Code Playgroud)
所以我不知道如何创建一个空的SelectList来将其分配给var变量?谢谢
我用这段代码用国家列表填充我的下拉列表:
public JsonResult GetAllCountries()
{
var objDict = new Dictionary<string, string>();
foreach (var cultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
var regionInfo = new RegionInfo(cultureInfo.Name);
if (!objDict.ContainsKey(regionInfo.EnglishName))
{
objDict.Add(cultureInfo.EnglishName, regionInfo.TwoLetterISORegionName.ToLower());
}
}
var obj = objDict.OrderBy(p => p.Key).ToArray();
return Json(obj.Select(t => new
{
Text = t.Key,
Value = t.Value
}), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
c# ×8
asp.net ×2
asp.net-mvc ×2
.net ×1
java ×1
knockout.js ×1
linq ×1
mockito ×1
razor ×1
roslyn ×1
sendgrid ×1
testng ×1
try-catch ×1
unit-testing ×1
wpf ×1