我可能会生气,但对于我的生活,我找不到改变VS2008中折叠区域颜色的选项.
例如,如果我有以下代码:
#region Test Region
CallSomeCode();
#endregion
Run Code Online (Sandbox Code Playgroud)
如果我现在折叠该区域,它的标题为"测试区域",为灰色文本颜色,周围有灰色框.
在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)
它确实工作!
我的问题是:为什么这有效?这里发生了什么?
我还是坚持这个:
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是否真的使用局部变量更快?或者只是在某些情况下?
我有两个不同的表,我在其中应用选择查询与一些过滤器和聚合函数,如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)
我曾尝试UNION和UNION ALL两者.但那些不起作用.我也尝试过Select * from (query 1),(query 2),但它也没有用.请建议我一些在这种情况下有用的解决方案.谢谢.
我们编写了一个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) 我正在开发一个项目,我在其中有一个表单,通过该表单我可以在列表视图中编辑可用的问题.每当我从列表视图中选择一行并单击"修改"按钮时,列表视图上方的文本框会加载问题及其选项.这意味着当我在列表视图中选择一行并单击"修改"按钮时,问题会将其自身加载到文本框中.我在那里编辑问题并单击"保存"以保存更改,但我无法访问文本框中的数据.它说{"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) 正如你所知,我想要的是什么.我在使用列表框.在ListBox我们可以通过简单的代码行获取所选项目:
listbox1.SelectedItem.我现在用的ListView,我怎么弄的SelectedItem或SelectedIndex的ListView.
我正在使用带有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的字符串.
有人知道任何可以做这样的事情的图书馆吗?
我使用 Visual Studio 2022 和 .Net 6.0,在创建实体框架模型时添加实体框架 6.4.4 后安装了它。我收到一条弹出消息说。
该项目的目标框架不包含实体框架运行时程序集。请查看项目属性页面上的目标框架信息。
我需要在每个循环中从我的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方法.