小编Dav*_* S.的帖子

SqlTransaction.Commit()之前的SqlCommand.Dispose()?

是否可以在提交事务之前处理分配给事务的命令?我自己测试了以下代码,它似乎运行良好,但这是一个相当小的例子,所以我正在寻找确认,如果有人肯定知道.

internal static void TestTransaction()
{
    try
    {
        Program.dbConnection.Open();
        using (SqlTransaction transaction = Program.dbConnection.BeginTransaction())
        {
            Boolean doRollback = false;
            for (int i = 0; i < 10; i++)
            {
                using (SqlCommand cmd = new SqlCommand("INSERT INTO [testdb].[dbo].[transactiontest] (testvalcol) VALUES (@index)", Program.dbConnection, transaction))
                {
                    cmd.Parameters.AddWithValue("@index", i);
                    try
                    {
                        cmd.ExecuteNonQuery();
                    }
                    catch (SqlException)
                    {
                        doRollback = true;
                        break;
                    }
                }
            }
            if (doRollback)
                transaction.Rollback();
            else
                transaction.Commit();
        }
    }
    finally
    {
        Program.dbConnection.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# t-sql sql-server-2008

13
推荐指数
1
解决办法
8404
查看次数

visual studio可以自动缩进/格式化预处理指令吗?

可能重复:
如何强制缩进C#条件指令?

假设我想在Visual Studio中键入:

    class Program
    {
        private const Byte NUM_THREADS =
        #if DEBUG
            1;
        #else
            8;
        #endif
    }
Run Code Online (Sandbox Code Playgroud)

如果我只是输入它(即不手动修复任何缩进),Visual Studio将像这样格式化:

    class Program
    {
        private const Byte NUM_THREADS =
#if DEBUG
 1;
#else
        8;
#endif
    }
Run Code Online (Sandbox Code Playgroud)

有什么我可以做的,所以它自动缩进所以它看起来像第一个例子?

c# visual-studio-2010 visual-studio c-preprocessor

13
推荐指数
1
解决办法
3135
查看次数

如何找到对 C# 9 记录定义的字段的所有引用?

重现:

public class TestCase
{
    public Boolean MyFieldIsFour(MyRecord myRecord)
    {
        return myRecord.MyField == 4;
    }
}

public record MyRecord(int MyField);
Run Code Online (Sandbox Code Playgroud)

右键单击int MyField并选择Find All References。Visual Studio 找不到任何对MyField. 我本希望它能在 找到参考myRecord.MyField。如果MyRecord更改为 a class,则 Visual Studio 可以按预期查找引用。

这是 Visual Studio 中的错误吗?我现在如何才能真正找到records 的参考资料?

c# visual-studio c#-9.0

12
推荐指数
1
解决办法
736
查看次数

解构元组以进行模式匹配

鉴于功能async Task<(Boolean result, MyObject value)> TryGetAsync(),我可以做到

if((await TryGetAsync()) is var ret && ret.result)
{
    //use ret.value
}
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试使用声明类型或使用解构来获得错误"在此上下文中不允许声明":

//declaration. error
if((await TryGetAsync()) is (Boolean result, MyObject value) ret && ret.result)
{
    //use ret.value
}

//deconstruction, also error.
if((await TryGetAsync()) is (Boolean result, MyObject value) && result)
{
    //use value
}
Run Code Online (Sandbox Code Playgroud)

如何避免var ret在此方案中使用第一个选项?我的问题是类型不明显(这是一个单独的讨论).

c# pattern-matching

10
推荐指数
1
解决办法
530
查看次数

Azure队列:查找项目是否在队列中

是否可以查询azure队列以查找项是否在指定队列中的某个位置(基于某些键属性)?

azure azure-storage

9
推荐指数
1
解决办法
4005
查看次数

当操作"接近O(1)"而不是"是O(1)"时,它意味着什么?

例如,考虑.NET Framework 4.5 Dictionary<TKey, TValue>类的文档:

在该方法的评论.ContainsKey,他们说明了这一点

该方法接近O(1)操作.

在财产的评论.Count,他们说明了这一点

检索此属性的值是O(1)操作.

请注意,我不是一定要求的细节C#,.NET,Dictionary或者是什么大O符号是一般.我刚刚发现这种"方法"的区别很有趣.

有什么区别吗?如果是这样,它可能有多重要?我应该注意它吗?

.net c# optimization big-o

8
推荐指数
1
解决办法
2383
查看次数

TextBox最大字符数(不是MaxLength)

我正在使用System.Windows.Forms.TextBox.根据文档,MaxLength属性控制进入用户可以键入或粘贴到TextBox中的字符数量(即,可以通过使用例如AppendText函数或Text属性以编程方式添加更多字符).当前的字符数量可以从TextLength酒店获得.

  1. 有没有办法设置最大字符数而不设置自定义限制器,Clear()当达到自定义限制时调用?
  2. 无论如何,它可以容纳的绝对最大值是多少?它只受记忆限制吗?
  3. 达到最大值/内存满时会发生什么?崩溃?顶部x行被清除?
  4. 手动清除前x行的最佳方法是什么?子串操作?

编辑:我测试过它可以容纳超过600k个字符,无论如何MaxLength,此时我手动停止了程序并询问了这个问题.

.net c# winforms

7
推荐指数
1
解决办法
5万
查看次数

Azure october 2012 sdk - 如何删除表实体而不先检索它?

在以前的版本中,我们可以在不知道它是否存在的情况下删除实体.

svc = new TestContext();
item = new TestEntity("item2pk", "item2rk");
svc.AttachTo("TestTable", item, "*");
svc.DeleteObject(item);
svc.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

(资源)

新的TableOperations没有此语法.我必须使用这种旧方法还是有办法?我想保持一致,因为现在我的所有代码都使用了第2版的新类.

编辑:标题具有误导性

.net c# azure azure-storage azure-table-storage

7
推荐指数
2
解决办法
5224
查看次数

使特定的内部函数对另一个程序集可见(即并非所有内部都可见)

可以[assembly: InternalsVisibleTo("NameOfOtherAssembly")]在 AssemblyInfo.cs 中指定。

但是是否可以将其限制为特定的内部功能?

例如,是否有可以应用于每个功能的属性?

[InternalVisibleTo("NameOfOtherAssembly")]
internal void ShouldBeVisible()
{}

internal void ShouldNotBeVisible()
{}
Run Code Online (Sandbox Code Playgroud)

如果没有,有没有其他方法可以做到这一点?

c# internalsvisibleto internal

7
推荐指数
1
解决办法
2778
查看次数

调用CloudBlobContainer.GetBlockBlobReference是否进行任何网络通信?

我有一个带有a的类readonly CloudBlobContainer,并且函数可以在CloudBlockBlobs里面进行操作.如果我想对a做多个操作CloudBlockBlob,如果我只获取CloudBlockBlob一次引用并将其传递给函数,我是否会避免不必要的网络活动(以及相关的减速)?或者我可以多次获得参考而不用担心?

TL; DR:CloudBlobContainer.GetBlockBlobReference纯粹的本地操作,这样才不会造成网络活动,如果我打电话了吗?

c# azure azure-storage azure-storage-blobs

7
推荐指数
1
解决办法
4273
查看次数