我正在使用AppCode它并在一个非常大的项目的代码中标记了一个有趣的情况.弧前.
子类定义并合成一个名为delegate的属性.实际上财产声明已经被注释掉了!但@synthesize delegate = delegate_;声明被遗忘了.
代码编译,可能是因为基类定义并合成了一个也称为委托的属性,并将其与具有相同名称的后备变量合成: @synthesize delegate = delegate_;
我的问题是:将消息发送给代理人
a)基类方法和
b)在子类方法中.
AppCode 将子类中的synthesize语句标记为错误:
属性'委托'的访问者已经与实例变量'delegate_'合成
我有一些代码可以根据用户输入动态构建一些搜索条件,从而导致Expression<Func<T, bool>>传递给LINQ .Where()方法.当输入存在时它工作正常,但是当输入不存在时,我想创建一个简单的'return false;' 声明,以便不返回任何结果.
下面是我当前的尝试,但是当它传递给.Where()方法时,它会抛出一个NotSupportedException"类型为'Block'的未知LINQ表达式."
var parameter = Expression.Parameter(typeof(T), "x");
var falseValue = Expression.Constant(false);
var returnTarget = Expression.Label(typeof (bool));
var returnFalseExpression = Expression.Block(Expression.Return(returnTarget, falseValue), Expression.Label(returnTarget, falseValue));
var lambdaExpression = Expression.Lambda<Func<T, bool>>(returnFalseExpression, parameter);
Run Code Online (Sandbox Code Playgroud)
如何构建一个可以由LINQ解释的'return false'表达式?
我使用的SaveChanges()方法如下:
objAdbContext 数据库 A
objBdbContext 数据库 B
更新DB A的表,如下所示
public string SaveA()
{
//Some stuff
objAdbContext.SaveChanges();
string result=UpdateDatabaseB(some parameters)
//Some stuff
}
public string UpdateDatabaseB(some parameters)
{
//Some stuff
objBdbContext.SaveChanges();
return "Success";
}
Run Code Online (Sandbox Code Playgroud)
此案例数据库B未获得更新.这是更新多个数据库的正确方法吗?
两者都是独立的数据库以及如何在这种情况下实现TransactionScope?
.net c# entity-framework entity-framework-4 asp.net-mvc-3-areas
我有这段代码,并生成错误,因为我已经添加到其类的构造函数中.
class NestedClass
{
class A
{
A() {}
}
class B
{
// no constructor
}
public static void run()
{
A a = new A(); // error
B b = new B(); // no error
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:
NestedExample.A is inaccessible due to protection level
Run Code Online (Sandbox Code Playgroud)
请帮我解释一下.
谢谢 :)
我正在开发一个带有大量AI的游戏,并注意到我的垃圾收集器每秒收集3-4次物体,这真的会伤害性能并在帧速率下降之前将敌人的数量限制在120.我分析了代码并发现罪魁祸首是我的碰撞检测代码,其中我有一个函数被调用多次,一个帧生成一个投影到轴上的列表.代码就像
public List<Vector2> foo()
{
List<Vector2> projections = new List<Vector2>();
// Calculate and return projections
}
Run Code Online (Sandbox Code Playgroud)
还有一些其他函数也在每次调用时创建新列表,并且我每个函数调用都会生成新列表,支持将一个vector2s列表存储为类的字段,这样我就不会调用每个函数的新列表呼叫.这将垃圾收集呼叫从每秒3-4次减少到每10-20秒一次,这使得我可以在帧率下降之前在地图上获得400-500个敌人.
新功能看起来像:
public List<Vector2> foo()
{
// projections is now a field of this class so we just clear it each function call
projections.Clear();
// Calculate and return projections
}
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么List.Clear方法比List = new List()招致更少的垃圾收集?当你调用clear时,我已经对列表中的项发生了什么进行了一些研究,当它们没有引用时看起来好像它们应该被垃圾收集,所以我的项目正在函数内创建,所以当函数退出时并且下次调用清除列表,以前的项目是否也应该被垃圾收集?
我的理解是,清除的项目应该是垃圾收集,就像我调用List = new List一样.很明显,当我切换到List.Clear()时,我的垃圾收集量大大减少了.以下是我用来试图了解我的列表项中发生的事情的链接.
我知道针对其他框架和语言多次询问这个问题,但我想知道一旦模型验证在 ASP.NET Core 2.1 中出现第一个错误,我如何才能真正停止模型验证?
[Required(ErrorMessage = Email.requiredErrorMessage)]
[DataType(DataType.EmailAddress, ErrorMessage = Email.formatErrorMessage)]
[StringLength(Email.maximumLength, MinimumLength = Email.minimumLength, ErrorMessage = Email.rangeErrorMessage)]
[EmailExists(ErrorMessage = Email.doesNotExistsMessage)]
public string email { get; set; }
[Required(ErrorMessage = ConfirmationCode.requiredErrorMessage)]
[RegularExpression(ConfirmationCode.regularExpression, ErrorMessage = ConfirmationCode.formatErrorMessage)]
public string confirmationCode { get; set; }
Run Code Online (Sandbox Code Playgroud)
上面的代码是 API 模型验证,在发出补丁请求时,我收到以下响应:
"email":[
"This email does not exist in database"
],
"confirmationCode":[
"Confirmation code format is invalid"
]
}
Run Code Online (Sandbox Code Playgroud)
我不希望模型验证在确保数据库中不存在电子邮件时继续,只需返回该错误并且不再继续验证。
我需要始终在我的数据库上标记太平洋时间,无论是八月还是二月。太平洋时间是一年中任何时间的实际美国西海岸时间:
我正在使用 C# 并执行以下操作:
TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone);
Run Code Online (Sandbox Code Playgroud)
这是否会自动考虑夏令时,或者我是否需要通过这样做来考虑这一点:
TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone);
if (!TimeZoneInfo.Local.IsDaylightSavingTime(CreatedDate))
{
CreatedDate = CreatedDate.AddHours(-1);
}
Run Code Online (Sandbox Code Playgroud) 我有 2 周的时间学习和使用 MongoDB,我正在使用 DataGridview 构建一个简单的 WinForm 应用程序。
一切正常,但我添加了超过 1.000.000 个文档,现在它显示了这个错误:
MongoDB.Driver.MongoCommandException: '命令聚合失败:排序超出了 104857600 字节的内存限制,但没有选择外部排序。中止操作。通过 allowDiskUse:true 选择加入..
我整个周末都在谷歌上检查了如何使用 Aggreate allowDiskUse:true 但它也不起作用。
谢谢。
public void ReadAllDocuments()
{
List<Clientes> list = collection.AsQueryable().OrderBy(q => q.Nombre).ToList();
dataGridView1.DataSource = list;
if (dataGridView1.Rows.Count > 0)
{
textBox1.Text = dataGridView1.Rows[0].Cells[0].Value.ToString();
textBox2.Text = dataGridView1.Rows[0].Cells[1].Value.ToString();
textBox3.Text = dataGridView1.Rows[0].Cells[2].Value.ToString();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个.NET解决方案,其中包含一些作为Nuget软件包发布的Service Fabric库项目(.NET Standard 2.0)。解决方案(.NET Core 2.0)中的单元测试项目正在使用xUnit。
我注意到与以前的构建相比,在构建服务器上运行时测试花费了太多时间。
我尝试使用Reshaper / Visual Studio或Powershell脚本在本地计算机上运行测试,该过程不到5分钟:
$stopwatch = [system.diagnostics.stopwatch]::StartNew()
Get-ChildItem -recurse *tests.csproj | % {
dotnet test $_.FullName --no-build --no-restore;
}
$stopwatch.Stop()
Write-Host $stopwatch.Elapsed
Run Code Online (Sandbox Code Playgroud)
但是在Azure Devops中,单元测试任务需要花费超过27分钟才能完成!!!
这是构建管道/单元测试任务:
有什么想法吗?
unit-testing xunit .net-core azure-service-fabric azure-devops
.net ×7
c# ×7
linq ×2
.net-core ×1
azure-devops ×1
class ×1
ios ×1
linq-to-sql ×1
list ×1
mongodb ×1
objective-c ×1
oop ×1
unit-testing ×1
xunit ×1