我已经创建了一个 Directory.build.props 文件,所以我可以在那里设置 C# 语言版本。但我也有 Visual Basic 项目,所以我想将设置限制为 C# 项目。
<Project>
<PropertyGroup Condition="'$(ProjectExt)'=='.csproj'">
<LangVersion>7.2</LangVersion>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
但是我的项目没有加载它/UI 没有显示语言版本 7.2。我试图在 csproj 文件中应用相同的条件,但也不起作用。
<PropertyGroup>
<LangVersion Condition="'$(ProjectExt)'=='.csproj'">7.2</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
但是,这将起作用:
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Message Text="Condition working" Importance="high" Condition="'$(ProjectExt)'=='.csproj'"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
构建将输出我的消息
为什么该条件不适用于我的 LanguageVersion?任何线索?
我相信我已经用很多方法来加速许多行的更新,但到目前为止没有任何帮助.
我们正在打开一个交易,如下所示:
private SQLiteTransaction BeginTransaction(SQLiteConnection connection)
{
return connection.BeginTransaction();
}
Run Code Online (Sandbox Code Playgroud)
然后在课程结束时关闭它.我们打开一个连接,一个事务,然后我们更新数据库上的许多行.这意味着我们在很多表中累积了许多不同的SQL语句.
一个重要的部分是在一个表中更新12000条记录
protected override void UpdateRows(SQLiteConnection connection, IEnumerable<DataRow> rowsToUpdate)
{
var command = new SQLiteCommand(Queries.SQLUpdateDocument, connection);
foreach (DataRow documentRow in rowsToUpdate)
{
command.Parameters.AddWithValue("@Filename", documentRow[Constants.Col_Document_Filename]);
command.Parameters.AddWithValue("@ClassID", documentRow[Constants.Col_Document_ClassID]);
command.Parameters.AddWithValue("@PageCount", documentRow[Constants.Col_Document_PageCount]);
command.Parameters.AddWithValue("@DocID", documentRow[Constants.Col_Document_GlobalDocID]);
command.Parameters.AddWithValue("@ReadOnly", documentRow[Constants.Col_Document_ReadOnly]);
command.Parameters.AddWithValue("@Confirmed", documentRow[Constants.Col_Document_Confirmed]);
command.Parameters.AddWithValue("@ParentFolderID", documentRow[Constants.Col_Document_ParentFolderID]);
command.Parameters.AddWithValue("@SequenceNumber", documentRow[Constants.Col_Document_SequenceNumber]);
command.Parameters.AddWithValue("@XmlRepr", documentRow[Constants.Col_Document_XmlRepr]);
command.ExecuteNonQuery();
documentRow.AcceptChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
与查询beeing:
UPDATE T_Doc SET
Filename = @Filename,
ClassID = @ClassID,
PageCount = @PageCount,
ReadOnly = @ReadOnly,
Confirmed = @Confirmed,
ParentFolderID = @ParentFolderID,
SequenceNumber = @SequenceNumber,
XmlRepr …Run Code Online (Sandbox Code Playgroud) move使用原始指针时如何使用赋值运算符。
除了这样做之外还有其他方法吗:
void Function(T* dest)
{
T* src = LoadT();
(*dest) = std::move(*src);
delete src;
}
Run Code Online (Sandbox Code Playgroud)