我们来定义这个函数:
Public Function Test(ByVal value As Boolean)
Return "blabla" + If(value = Nothing, "", If(value, "1", "0"))
End Function
Run Code Online (Sandbox Code Playgroud)
我希望它做到以下几点:
Test(True) -> "blabla1",Test(False) -> "blabla0",Test(Nothing) -> "blabla".
问题是Test(Nothing)返回"blabla0".
据我所知this,扩展方法作为ref变量传递.我可以通过这样做验证这一点
public static void Method<T>(this List<T> list)
{
list.Add(default(T));
}
List<int> ints = new List<int>(new int[] { 1, 2, 3, 4, 5 });
ints.Method();
Run Code Online (Sandbox Code Playgroud)
我List<int> ints现在1, 2, 3, 4, 5, 0.
但是,当我这样做
public static void Method<T>(this List<T> list, Func<T, bool> predicate)
{
list = list.Where(predicate).ToList();
}
List<int> ints = new List<int>(new int[] { 1, 2, 3, 4, 5 });
ints.Method(i => i > 2);
Run Code Online (Sandbox Code Playgroud)
我希望我List<int> ints能3, 4, 5保持原状但仍然保持原状.我错过了一些明显的东西吗
我有一个样本Data课
public class Data
{
public int TestInt { get; set; }
public bool TestBool { get; set; }
public string TestString { get; set; }
public Data() { TestInt = 10; TestBool = true; TestString = "test"; }
}
Run Code Online (Sandbox Code Playgroud)
并且是一种扩展方法
public static void Method<T>(this T item, params Expression<Func<T, object>>[] properties)
{
/* Some stuff */
}
Run Code Online (Sandbox Code Playgroud)
我这样用
Data data = new Data();
data.Method(x => x.TestInt, x => x.TestBool, x => x.TestString);
Run Code Online (Sandbox Code Playgroud)
我Method<T>确实收到3个属性,但它稍微改为:
properties[0] = x …Run Code Online (Sandbox Code Playgroud) 这是我的问题:
我正在尝试显示AlertDialog,但我似乎无法做到这一点.
这是我的代码:
tv.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
final EditText input = new EditText(c);
AlertDialog.Builder adb = new AlertDialog.Builder(c);
adb.setTitle(lb)
.setMessage("Test")
.setView(input)
.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
//tv.setText(input.getEditableText().toString());
Toast.makeText(c, input.getEditableText().toString(), Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
dialog.cancel();
}
}).show();
}
});
Run Code Online (Sandbox Code Playgroud)
我想在用户点击标签时显示此AlertDialog,然后在用户按OK时使用编辑文本更改标签值.
但是当它在点击时显示对话框时,它会崩溃.
07-18 16:04:59.240: E/AndroidRuntime(10503): FATAL EXCEPTION: main
07-18 16:04:59.240: E/AndroidRuntime(10503): android.view.WindowManager$BadTokenException: Unable to add window --
token null is …Run Code Online (Sandbox Code Playgroud) 我以simpl.info代码为例。在他们的示例中,我可以在“视频源”选择中看到“ TOSHIBA Web Camera-HD(13d3:5606)”。因此,他们可以检索源的label属性。我可以轻松获取来源,但标签为空:
SourceInfo {facing: "", label: "", kind: "video", id: "0c2c5a2bf359a3ced6d7d39efe2f40477f50d5627df618a6f1998b5142437b27"}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
$(document).ready(function ()
{
if (navigator.getUserMedia)
{
if (typeof MediaStreamTrack.getSources !== 'undefined')
{
MediaStreamTrack.getSources(gotSources);
}
}
});
function gotSources(sourceInfos)
{
for (var i = 0; i < sourceInfos.length; i++)
{
var sourceInfo = sourceInfos[i];
if (sourceInfo.kind == 'video')
{
console.log(sourceInfo);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我可能会遗漏一些明显的东西,但我无法通过委托返回值.
Private Delegate Sub ChangeTextDelegate(tb As TextBox)
Private Sub ChangeText(tb As TextBox)
If tb.InvokeRequired Then
tb.Invoke(New ChangeTextDelegate(AddressOf ChangeText), tb)
Else
tb.Text = "NEW TEXT"
End If
End Function
Run Code Online (Sandbox Code Playgroud)
副代表运作良好.
Private Delegate Function TextLengthDelegate(tb As TextBox) As Integer
Private Function TextLength(tb As TextBox) As Integer
If tb.InvokeRequired Then
tb.Invoke(New TextLengthDelegate(AddressOf TextLength), tb)
Else
Return tb.TextLength
End If
End Function
Run Code Online (Sandbox Code Playgroud)
但是这个功能代表似乎从那i == 0以后似乎没有用dim i = TextLength(myTextBox),尽管如此tb.TextLength == 68
任何的想法 ?
我有一个名为 tableFrom 的表想要插入到名为 tableTo 的表中。插入效果很好,但是如果我再次插入相同的值,则会出现重复键错误。所以我只想更新已经存在的行。我知道命令 ON DUPLICATE with MySQL,不幸的是在 SQL Server 中丢失了。
如果我只想检查一个精确的行,这很容易:
IF EXISTS PK = @PK
Run Code Online (Sandbox Code Playgroud)
但是我正在尝试为整张桌子这样做,我不知道是否可能。我想用游标检查每一行,我是 SQL 的新手。
这是我想出的:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
IF EXISTS (
SELECT
1
FROM
tableFrom F,
tableTo T
WHERE
T.product = F._product
)
BEGIN
UPDATE
tableTo
SET
T.something = F.something
FROM
tableTo T
INNER JOIN
tableFrom F
ON
T.product = F._product
END
ELSE
BEGIN
INSERT INTO tableTo
(product,
something)
SELECT
F._product,
F.something
FROM
tableFrom F
END
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)
UPDATE …
我正在使用带有getUserMedia的相机,我得到了一些我想修复的错误.事情是Visual Studio只允许我用IE调试JavaScript(我的意思是命中断点),IE不支持getUserMedia.
我打电话UseScreenshots给两个html2canvas人之后打电话.
function Main()
{
var screenshot1, screenshot2;
html2canvas($('#div1'),
{
onrendered: function (canvas)
{
screenshot1 = canvas.toDataURL('image/png');
}
});
html2canvas($('#div2'),
{
onrendered: function (canvas)
{
screenshot2 = canvas.toDataURL('image/png');
}
});
UseScreenshots(screenshot1, screenshot2);
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中screenshot1,并screenshot2仍将是undefined打电话时UseScreenshots.
在deceze的回答之后,我将使用Promise.all:
Promise.all(
[
new Promise(function (resolve)
{
html2canvas($('#div1'),
{
onrendered: function (canvas)
{
resolve(canvas.toDataURL('image/png'));
}
});
},
new Promise(function (resolve)
{
html2canvas($('#div2'),
{
onrendered: function (canvas)
{
resolve(canvas.toDataURL('image/png'));
}
});
} …Run Code Online (Sandbox Code Playgroud) 第一个问题在这里修复,但它带来了另一个,我更喜欢创建一个新线程.
我有一个CustomList<T extends A>将与使用Class A1和Class A2,既舒展Class A.
我有一个Class B包含CustomLists:
public Class B
{
CustomList<A1> listA1 = new CustomList<A1>();
public CustomList<A1> getListA1(){ return listA1;}
}
Run Code Online (Sandbox Code Playgroud)
每当我尝试做的时候
for(A1 obj : myBClass.getListA1())
{
/*Do something*/
}
Run Code Online (Sandbox Code Playgroud)
我得到了Type mismatch : cannot convert from element type A to A1.,因为getListA1()返回一个,我没有得到它CustomList<A1>.我想这可能是因为CustomList<T extends A>.
正如标题所说,我想为元素添加一个新的隐藏属性.为了避免混淆,我希望隐藏属性,而不是元素.
我有一个div: <div id="hello_div">Hello!</div>
我添加了一个属性: $('#hello_div').attr('my_attr', 'attr_value');
所以我以后可以得到它: var v = $('#hello_div').attr('my_attr');
它按预期工作,但如果您div在DOM资源管理器中检查,您会看到:
<div id="hello_div" my_attr="attr_value">Hello!</div>
有什么方法可以隐藏这个属性吗?
javascript ×4
android ×2
c# ×2
vb.net ×2
.net ×1
arraylist ×1
asynchronous ×1
attributes ×1
boolean ×1
browser ×1
callback ×1
crash ×1
debugging ×1
delegates ×1
extends ×1
function ×1
getusermedia ×1
hidden ×1
java ×1
jquery ×1
lambda ×1
local ×1
nothing ×1
object ×1
ref ×1
return ×1
return-value ×1
sql-server ×1