小编Oli*_*bes的帖子

如何在Visual Studio 2008中更改#region的颜色

我可能会生气,但对于我的生活,我找不到改变VS2008中折叠区域颜色的选项.

例如,如果我有以下代码:

#region Test Region

CallSomeCode();

#endregion
Run Code Online (Sandbox Code Playgroud)

如果我现在折叠该区域,它的标题为"测试区域",为灰色文本颜色,周围有灰色框.

visual-studio-2008 regions

13
推荐指数
3
解决办法
7260
查看次数

为委托分配本地功能

在C#7.0中,您可以声明本地函数,即生活在另一个方法中的函数.这些本地函数可以访问周围方法的局部变量.由于局部变量仅在调用方法时存在,我想知道是否可以将一个局部函数分配给一个委托(它可以比这个方法调用寿命更长).

public static Func<int,int> AssignLocalFunctionToDelegate()
{
    int factor;

    // Local function
    int Triple(int x) => factor * x;

    factor = 3;
    return Triple;
}

public static void CallTriple()
{
    var func = AssignLocalFunctionToDelegate();
    int result = func(10);
    Console.WriteLine(result); // ==> 30
}
Run Code Online (Sandbox Code Playgroud)

它确实工作!

我的问题是:为什么这有效?这里发生了什么?

c# c#-7.0

13
推荐指数
2
解决办法
1504
查看次数

局部变量或类字段?

我今天读了一篇关于 C#和Java 性能改进文章.

我还是坚持这个:


19.不要过度使用实例变量

使用局部变量可以提高性能.示例1中的代码执行速度比示例2中的代码快.

例1:

public void loop() {
    int j = 0;
    for ( int i = 0; i<250000;i++){
        j = j + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

例2:

int i;
public void loop() {
    int j = 0;
    for (i = 0; i<250000;i++){
        j = j + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我不明白为什么loop在我可以对字段进行简单访问时,每次调用函数时实例化一些内存并释放它应该更快.

这是纯粹的好奇心,我不是试图将变量'i'放在类的范围内:p是否真的使用局部变量更快?或者只是在某些情况下?

c# java performance

12
推荐指数
2
解决办法
6097
查看次数

输出两个不同的查询作为oracle SQL的一个结果

我有两个不同的表,我在其中应用选择查询与一些过滤器和聚合函数,如SUM,COUNT,SUBSTR.

我想在一个result.example中得到这两个不同的输出:

查询1:

SELECT
    a.message_type,
    a.queue_seqnum,
    b.queue_seqnum,
    SUBSTR(b.char_data,1,2) files
FROM
    ad_in_messageheader a,
    ad_in_messagedetail b 
WHERE
    a.queue_seqnum = b.queue_seqnum AND
    a.MESSAGE_TYPE IN ('ERP_COSTS_SMRY','ERP_SALES_SMRY','ERP_SPEND_SMRY') AND
    a.create_time > '17-DEC-13 07.00.00 AM'
ORDER BY
    a.queue_seqnum desc;
Run Code Online (Sandbox Code Playgroud)

查询2:

SELECT
    a.message_type,
    count(a.message_type) count
FROM
    ad_in_messageheader a 
WHERE
    a.MESSAGE_TYPE in ('ERP_COSTS','ERP_SALES','ERP_SPEND') AND
    create_time > '17-DEC-13 07.00.00 AM'
GROUP BY
    a.message_type;
Run Code Online (Sandbox Code Playgroud)

我曾尝试UNIONUNION ALL两者.但那些不起作用.我也尝试过Select * from (query 1),(query 2),但它也没有用.请建议我一些在这种情况下有用的解决方案.谢谢.

sql oracle

12
推荐指数
2
解决办法
8万
查看次数

通过代码中的第一个EF存储库传递动态表达式

我们编写了一个Generic函数,首先从存储库模式中获取EF代码中的记录.休息似乎没问题,但是当将Integer传递给动态订单时,它说Cannot cast System.Int32 to System.Object

表达式如下:

Expression<Func<HeadOffice, object>> orderByFunc = o =>  o.Id;

if (options.sort == "Id")
{
         // this is an Integer
    orderByFunc = o => o.Id;
}
if (options.sort =="Name")
{
   // string
    orderByFunc = o => o.Name;
}
if (options.sort == "Code")
{
    orderByFunc = o => o.Code;
}
Run Code Online (Sandbox Code Playgroud)

通用方法如下:

public virtual IEnumerable<TEntity> GetSorted<TSortedBy>(
    Expression<Func<TEntity, object>> order,
    int skip, int take, 
    params Expression<Func<TEntity, object>>[] includes)
{
    IQueryable<TEntity> query = dbSet;

    foreach (var include in includes)
    { …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

12
推荐指数
2
解决办法
6479
查看次数

"输入字符串的格式不正确."

我正在开发一个项目,我在其中有一个表单,通过该表单我可以在列表视图中编辑可用的问题.每当我从列表视图中选择一行并单击"修改"按钮时,列表视图上方的文本框会加载问题及其选项.这意味着当我在列表视图中选择一行并单击"修改"按钮时,问题会将其自身加载到文本框中.我在那里编辑问题并单击"保存"以保存更改,但我无法访问文本框中的数据.它说{"Input string was not in a correct format."}.

我的表单frmFormWizard's'编辑'按钮的代码如下:

frmFormWizard.cs代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Sql;
using System.Data.SqlClient;

namespace SurveyBuilder
{
    public partial class frmFormWizard : Form
    {
        int intPanelNumber = 1;
        Boolean blnCancel = false;
        //int intFlag = 1;

        public frmFormWizard()
        {
            InitializeComponent();
        }

        ...

        private void btnEditTwoOrMoreOptions_Click(object sender, EventArgs e)
        {
            int QuestionID;           
            string sql;

            QuestionID = Convert.ToInt32(lvTwoOrMoreOptions.SelectedItems[0].Text.ToString());
            {
                SqlConnection cn = …
Run Code Online (Sandbox Code Playgroud)

.net c# visual-studio-2010 winforms

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

如何在vb.net中获取ListView的SelectedItem或SelectedIndex

正如你所知,我想要的是什么.我在使用列表框.在ListBox我们可以通过简单的代码行获取所选项目: listbox1.SelectedItem.我现在用的ListView,我怎么弄的SelectedItemSelectedIndexListView.

vb.net listview winforms

10
推荐指数
3
解决办法
12万
查看次数

OData Linq查询字符串

我正在使用带有OData查询支持的Web API(夜间),虽然我知道WCF库让您能够查询WCF RIA服务URL我正在寻找的是一种生成Odata查询字符串的轻量级方式像LinqPad一样,但更通用.

例如,如果我们知道服务返回特定类型的"ProductDTO",我希望能够做到这样的事情:

(from p in ODataSource<ProductDTO>
 where p.Name == "hi"
 select new {p.Model, Name}).ToODataQuery();
Run Code Online (Sandbox Code Playgroud)

这将返回适当的$ filter和$ select命令作为可以附加到URL的字符串.

有人知道任何可以做这样的事情的图书馆吗?

c# linq odata

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

在 Visual Studio 2022 上添加实体框架模型

我使用 Visual Studio 2022 和 .Net 6.0,在创建实体框架模型时添加实体框架 6.4.4 后安装了它。我收到一条弹出消息说。

该项目的目标框架不包含实体框架运行时程序集。请查看项目属性页面上的目标框架信息。

有人可以告诉我们如何解决这个问题吗? 在此输入图像描述

.net c# entity-framework

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

背景工作者 - 报告与字符串数组的进展

我需要在每个循环中从我的backgroundworker返回多个STRING值,所以我尝试使用ReportProgress第二个参数作为字符串数组.代码示例:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    string[] workerResult = new string[2];
    for (int i=0; i<someNumber; i++)
    {
        //do some heavy calculating
        workerResult[0] = "this string";
        workerResult[1] = "some other string";
        backgroundWorker1.ReportProgress(i, workerResult) // also tried workerResult[] and [2]
    }
}

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    string[] results = (string[])e.UserState;

    MessageBox.Show(results[0]); // line of error
    MessageBox.Show(results[1]); // line of error
}
Run Code Online (Sandbox Code Playgroud)

它编译,但在运行时我尝试访问Userstate返回的字符串,我收到一个错误:"对象引用未设置为对象的实例."

对我来说,似乎在将数组参数传递给ProgressChanged委托时出错,或者在尝试设置结果数组值时使用ProgressChanged方法.

.net c# backgroundworker

9
推荐指数
2
解决办法
3万
查看次数