我正在创建一个应用程序,如果在应用程序数据库中的表中添加了新行,则会通知用户.是否最好为此创建一个触发器,或者直接从应用程序每隔几秒检查一次?思考?
class Program
{
public delegate void VoidMethodDelegate();
public delegate int IntMethodDelegate();
static void Main(string[] args)
{
Test(IntMethod);
Test(VoidMethod);
}
static int IntMethod()
{
return 1;
}
static void VoidMethod()
{
}
static void Test(VoidMethodDelegate method)
{
}
static void Test(IntMethodDelegate method)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试设置一个重载方法,它将采用两种不同类型的委托.代表只有返回类型不同 - 在这两种情况下它们都不带输入参数.因此,在上面的示例中,我希望能够调用Test()并将其传递给返回void的方法或返回int的方法.当我编译上面的代码时,我得到这些错误:
错误CS0121:以下方法或属性之间的调用不明确:'ConsoleApplication1.Program.Test(ConsoleApplication1.Program.VoidMethodDelegate)'和'ConsoleApplication1.Program.Test(ConsoleApplication1.Program.IntMethodDelegate)'
错误CS0407:'int ConsoleApplication1.Program.IntMethod()'具有错误的返回类型
错误CS0121:以下方法或属性之间的调用不明确:'ConsoleApplication1.Program.Test(ConsoleApplication1.Program.VoidMethodDelegate)'和'ConsoleApplication1.Program.Test(ConsoleApplication1.Program.IntMethodDelegate)'
我知道如果我使用new创建委托而不是直接传递方法,我可以解决错误,如下所示:
static void Main(string[] args)
{
Test(new IntMethodDelegate(IntMethod));
Test(new VoidMethodDelegate(VoidMethod));
}
Run Code Online (Sandbox Code Playgroud)
但是这种语法很混乱,我宁愿能够直接传递方法,而不必将其包装在对new的调用中.我见过的唯一解决方案是摆脱Test()的重载版本,而是使用两种不同的方法,每种方法都有不同的名称.
任何人都可以告诉我为什么编译器抱怨这是不明确的?我不明白为什么编译器无法决定使用哪两个重载.
我有两个类 - 一个持有实体信息,其他持有组件信息.现在的问题是Entity类需要已经定义的Component类才能在子元素的向量中使用它,但同时Component需要Entity将它声明为它的父元素(我保持所有链接在它们之间).这会产生奇怪的错误,即使IntelliSense说它已经定义了.
我怎样才能克服这个困难?
抱歉我的初学者问题...定义当 MousePressEvent 或 MouseReleaseEvent 发生时执行的过程的最简单方法是什么?
现在我正在定义自己的类(MyGraphicsView 类),它继承 QGraphicsView 并且我正在重新实现鼠标事件(它们是虚函数)。它工作得很好,但是有什么方法可以解决这个问题而不需要定义一个新的类吗?我可以以某种方式将事件与老虎机连接起来吗?
感谢您的帮助。
我正在为在所有Intranet站点上强制兼容模式的客户端工作.我想知道是否有一个标签,我可以放入我的HTML,强制兼容模式关闭.
我的代码 -
document.getElementById("lblmsg").innerHTML=xmlhttp.responseText;
if(xmlhttp.responseText == 'Available')
{
document.getElementById("newid").value = "";
}
Run Code Online (Sandbox Code Playgroud)
虽然响应文本Available
但仍然没有进入条件???
我在网站上看到了这段代码.
main(i)
{
gets(&i);
puts();
}
Run Code Online (Sandbox Code Playgroud)
这段代码编译并运行良好!
它从用户获取一个字符串作为输入并打印它!
但是,我的问题是,怎么样?
(注意puts()
函数不包含任何参数!)
我使用.placeTaken类将divy工具提示添加到div.然后用户可以拖动框,因此我删除了类并将其添加到新的div中.当发生这种情况时,我向该div添加一个新的醉意工具提示,并且工作正常,但我想删除旧的.
他们说如果您希望通过将title属性设置为空字符串来删除工具提示,请改为设置original-title属性.我试过$("#"+dropFromId).attr("original-title", "");
但工具提示仍在那里.我甚至无法通过设置另一个原始标题来更改工具提示标题.
我究竟做错了什么?
编辑:我想我没有给你们足够的信息.我使用ajax来获取从数据库中获取的位置.PHP返回一个关联数组(客户),然后我在我的JavaScript中使用,其中所发生的匹配名称.删除时所采取的位置会发生变化,因此我再次执行ajax函数以使用所有拍摄的位置更新数组.首先,我将醉意的工具提示添加到所有拍摄的地方,如此
$("#map div.placeTaken").tipsy({gravity: 'w', html: true, fade: true, title:
function(){
// id could for example be map74, substring to 74
var id = $(this).attr("id").substring(3,6);
return '<div>'+customers[id]+'</div><br />';
}
});
Run Code Online (Sandbox Code Playgroud)
所以标题等于数组中匹配的位置.我希望我能够解释这个问题.当盒子掉到一个新的地方时,就会发生这种情况
$("#map div span").bind( "dragstop", function(event, ui) {
// some code here to change the .placeTaken class
// update database with the new place
$.ajax({
type: "POST",
url: "map.php",
data: "dropFromId="+ dropFromId.substring(3,6) +"& dropToId="+ dropToId.substring(3,6),
success: function(){
// ajax function to update the js array …
Run Code Online (Sandbox Code Playgroud) $string = 'Some string';
$pos = 5;
...??...
$begging // == 'Some s';
$end // == 'tring';
Run Code Online (Sandbox Code Playgroud)
在给定位置将字符串分成两部分的最佳方法是什么?
LinQ包含方法Cast,它将列表中的每个条目强制转换为T类型.假设我们有一个如下所示的列表:
List<Object> obj = new List<Object>();
obj.Add("A");
obj.Add("B");
Run Code Online (Sandbox Code Playgroud)
工作演员可能是
var list = obj.Cast<string>();
Run Code Online (Sandbox Code Playgroud)
我想做什么
Type t = typeof(String);
Object list = obj.Cast(t);
Run Code Online (Sandbox Code Playgroud)
一个解决方案是使用反射并通用地创建一个列表并填充它,但我想知道是否有更好的解决方案?听说.NET 4.0应该支持一些co/contra-variance,这可能是一种方法.
额外信息和反思Soulution
我得到的错误如下The model item passed into the dictionary is of type System.Collections.Generic.List1[IStatisticEntry], but this dictionary requires a model item of type System.Collections.Generic.List1[CrashStatistic+CrashEntry]
.请注意,CrashEntry实现了IStaticEntry,但无法进行转换,因为它是列表的泛型类型.
我构建了以下解决方案,我会像没有反射的东西一样:
public static object Cast(this IEnumerable list, Type type)
{
var newList = Activator.CreateInstance(typeof(List<>).MakeGenericType(type));
foreach (var item in list)
newList.GetType().GetMethod("Add").Invoke(newList, new object[] { item });
return newList;
}
Run Code Online (Sandbox Code Playgroud)