在VB.NET(而不是c#)...
我想创建一个可以被侦听器取消的事件.就像你可以取消winforms表格的结束事件一样,在这种情况下表格不会关闭.
我已经从EventArgs实现了一个派生类,它具有可设置的Cancel属性,如下所示:
Public Class AnnounceNavigateEventArgs
Inherits EventArgs
Private _cancel As Boolean = False
''' <summary>
''' Initializes a new instance of the AnnounceNavigateEventArgs class.
''' </summary>
Public Sub New(ByRef cancel As Boolean)
_cancel = cancel
End Sub
Public Property Cancel() As Boolean
Get
Return _cancel
End Get
Set(ByVal value As Boolean)
_cancel = value
End Set
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
请注意,我将取消参数byRef传递给构造函数.
我设置的监听器将属性设置为Cancel = True.我认为ByRef意味着_cancel和cancel都指向堆栈上的相同位置,因此设置_cancel = true会使cancel = true.但这不是我得到的行为._cancel在setter中变为true但我猜构造函数的参数仍为false.
在vb.net中执行此操作的正确方法是什么?
赛斯
我有一个 SQL 变量 @SumScore dec(9,4)
我正在尝试按如下方式分配变量:
SET @SumScore =
(
SELECT Sum(
(
SELECT SUM(etjs.CalculatedScore * sc.PercentOfTotal) as CategoryScore
FROM tblEventTurnJudgeScores etjs
INNER JOIN tblJudgingCriteria jc ON jc.JudgingCriteriaID = etjs.JudgingCriteriaID
INNER JOIN tblScoringCategories sc ON jc.ScoringCategoryID = sc.ScoringCategoryID
GROUP BY jc.JudgingCriteriaID
)
As ComputedScore) AS SumTotalScore
)
Run Code Online (Sandbox Code Playgroud)
换句话说,内部选择返回一列。我希望为 var 分配正在返回的所有行的 SUM。
我意识到这可以很容易地用临时表来完成。但这是唯一的方法吗?
这是一个简单的问题,但我无法解决这个问题.
我想做这样的事....
Run Code Online (Sandbox Code Playgroud)@(string.IsNullOrEmpty(Model.CustomerUrl) ? "" : <a href="@Model.CustomerUrl">Click me</a>)
此代码段不起作用.
将html与剃刀语法混合并在标签的属性中包含引号使得很难弄清楚.
我喜欢剃刀,除非弄清楚这种东西真的让我感到沮丧.
如果CustomerUrl为null或为空,我很乐意不呈现以下内容...
<p class="customerLink links"><a href="@Model.CustomerUrl">@Model.CustomerName</a></p>
Run Code Online (Sandbox Code Playgroud)
编辑
这仍然不适合我...感谢您的建议.
我的问题是上面的代码在Razor代码块中是ALREADY.这是我无法弄清楚的实际代码......
编辑号码2 - 以下代码现在正在运行
@if (Model.Count() > 0)
{
foreach (var partner in Model)
{
<li>
@Html.ActionLink(@partner.CustomerName, "Details", "Customer", new { id = Customer.AID }, null)<br />
@partner.Street<br />
//this is what i cannot figure out!!
@if(!string.IsNullOrEmpty(partner.Phone))
{
@partner.Phone@:<br />
}
@partner.Distance<br />
</li>
}
}
Run Code Online (Sandbox Code Playgroud)
我在嵌套块(if)之前加上@符号.然后标记
我必须用@分界:然后它工作了.
似乎昨天当我尝试使用嵌套的剃刀代码块时,我得到了一个编译器错误,因为我之前是一个@.所以现在我比以前更加困惑.
事实上......如果我试图用这样的引号包围我的@ partner.Phone ... "@partner.Phone"@:</ br>我得到另一个编译器错误.Razor在它工作时非常棒,但是当它不工作时它会非常混乱.
赛斯
为什么以下代码工作正常......
<ul class="searchList">
@if (Model.Count() > 0)
{
foreach (var partner in Model)
{
<li>
@Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br />
@partner.Street<br />
@partner.CityStateZip<br />
@if(!string.IsNullOrEmpty(partner.Phone))
{
@partner.Phone<br />
}
@(partner.Distance) miles<br />
</li>
}
}
</ul>
Run Code Online (Sandbox Code Playgroud)
但是这段代码不能正常工作......
@if (Model.Count() > 0)
{
<ul class="searchList">
foreach (var partner in Model)
{
<li>
@Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br />
@partner.Street<br />
@partner.CityStateZip<br />
@if(!string.IsNullOrEmpty(partner.Phone))
{
@partner.Phone<br />
}
@(partner.Distance) miles<br /> …Run Code Online (Sandbox Code Playgroud) 我在CodeProject上发现以下代码片段,以异步方式调用方法... http://www.codeproject.com/Articles/14931/Asynchronous-Method-Invocation
private void CallFooWithOutAndRefParameters()
{
// create the paramets to pass to the function
string strParam1 = "Param1";
int intValue = 100;
ArrayList list = new ArrayList();
list.Add("Item1");
// create the delegate
DelegateWithOutAndRefParameters delFoo =
new DelegateWithOutAndRefParameters(FooWithOutAndRefParameters);
// call the beginInvoke function!
IAsyncResult tag =
delFoo.BeginInvoke(strParam1,
out intValue,
ref list,
null, null);
// normally control is returned right away,
// so you can do other work here...
// calling end invoke notice that intValue and list are passed
// …Run Code Online (Sandbox Code Playgroud) 我有一个Microsoft Access窗体绑定到具有计算列的链接SQL Server表.我有一个绑定到计算列的控件.
我已经意识到,除非保存记录,否则无法刷新计算字段.除此之外,刷新保存后绑定到计算列的文本框的最佳方法是什么.
我宁愿不做me.requery(整个记录集的重新查询).
有没有办法JUST刷新那个字段?
我想约束SQL Server十进制列只允许-1,0,1作为有效值.
你能告诉我添加这种约束的SQL语法吗?(我想知道如何在CREATE TABLE语句和/或ALTER TABLE ADD CONSTRAINT中执行此操作).
或者这只能在触发器中完成?
我支持相当广泛部署的.NET 2.0 Winforms应用程序.在极少数情况下,我们会收到客户的支持电话,当您尝试启动应用程序时,应用程序会返回.NET运行时异常.
在过去,我们帮助客户重新安装.net框架,并且经常有效......但有时候不行.
在这种情况下,可以使用Windows调试工具来确定问题的原因.如果是这样,你必须下载调试符号到目标计算机(想避免,因为这可能是几百MB的东西下载到目标.)
对于.net应用程序来说这有点过分吗?任何替代品.你会如何调试这个.非特定的逐步将是值得赞赏的.当然,这个应用程序在目标机器上编译为RELEASE配置.客户很可能没有安装开发工具或调试工具.我们通常可以远程控制对计算机的访问.重新迭代.这种情况很快发生,因为客户试图运行应用程序并立即失败.
为客户解决这个问题的最快途径是什么?
以下是事件日志中最近出现的错误示例.
EventType clr20r3..exe P2 2010.1.0.0,p3 4B857AFD P4 BLAH BLAH system.invalidoperation,P10 NIL.
来源:.NET Runtime 2.0错误.EventID:5000
提前致谢.
赛斯
我有一个带有委托声明的课程如下......
Public Class MyClass
Public Delegate Function Getter(Of TResult)() As TResult
''#the following code works.
Public Shared Sub MyMethod(ByVal g As Getter(Of Boolean))
''#do stuff
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
但是,我不想在Method调用中显式键入Getter委托.为什么我不能将参数声明如下......
... (ByVal g As Getter(Of TResult))
Run Code Online (Sandbox Code Playgroud)
有办法吗?
我的最终目标是能够在被调用的类中为属性设置器和getter设置委托.但我的阅读表明你不能这样做.所以我在该类中放置了setter和getter方法,然后我希望调用类设置委托参数然后调用.这样做有最好的做法吗?
我在上面的例子中意识到我可以设置从调用类设置委托变量...但我试图创建一个紧密封装的单例.
为了记录,我不能使用.net35中声明的任何新委托类型.
欢迎使用C#中的答案.
有什么想法吗?
赛斯
我是vb.net程序员切换到C#.
我有一个控制台应用程序的代码(针对NET20)
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace eScoreSwapper
{
class Program
{
private string _dbName = ConfigurationManager.AppSettings["dbName"];
static void Main(string[] args) {}
static void InitVars()
{
if (string.IsNullOrEmpty(_dbName)) _dbName = "";
}
}
}
Run Code Online (Sandbox Code Playgroud)
这在_dbName变量的InitVars的if子句中给出了编译错误:
Error 1 An object reference is required for the non-static field, method, or property 'eScoreSwapper.Program._dbName' C:\Users\SethS\Documents\eScore\Versions\Trunk\dotNet\eScoreSwapper\eScoreSwapper\Program.cs 26 38 eScoreSwapper
Run Code Online (Sandbox Code Playgroud)
是因为它是真的.除非声明为静态,否则C#不允许您引用私有类字段?我确信我做错了什么.
在我的时候,我可以问另一个C#问题.为什么if语句有效?为什么不需要牙箍?只要条件后跟单个表达式(如在t-sql IF中),它是否是有效的语法.
谢谢你的帮助.
赛斯
c# ×4
vb.net ×4
.net ×3
sql-server ×3
asp.net ×2
asp.net-mvc ×2
razor ×2
sql ×2
t-sql ×2
asynchronous ×1
c#-3.0 ×1
callback ×1
constraints ×1
data-binding ×1
debugging ×1
delegates ×1
events ×1
ms-access ×1
syntax ×1
winforms ×1