小编Art*_*Rey的帖子

vb.net布尔值和无

我们来定义这个函数:

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".

.net vb.net boolean nothing

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

扩展方法和本地'this'变量

据我所知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> ints3, 4, 5保持原状但仍然保持原状.我错过了一些明显的东西吗

c# extension-methods local ref

7
推荐指数
1
解决办法
995
查看次数

Lambda Expression`x => x.Property`变为`x => Convert(x.Property)`

我有一个样本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)

c# lambda object

7
推荐指数
2
解决办法
991
查看次数

AlertDialog.show()使我的应用程序崩溃

这是我的问题:

我正在尝试显示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)

crash android android-alertdialog

6
推荐指数
2
解决办法
1万
查看次数

Chrome MediaStreamTrack.getSources()返回带有空标签的源

我以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)

javascript jquery google-chrome getusermedia

4
推荐指数
1
解决办法
5736
查看次数

委托函数不返回值

我可能会遗漏一些明显的东西,但我无法通过委托返回值.

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

任何的想法 ?

vb.net delegates return function return-value

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

如果存在 UPDATE else INSERT 对于表的每一行

我有一个名为 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 …

sql-server insert-update

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

调试客户端时使用Chrome/Firefox

我正在使用带有getUserMedia的相机,我得到了一些我想修复的错误.事情是Visual Studio只允许我用IE调试JavaScript(我的意思是命中断点),IE不支持getUserMedia.

javascript browser debugging visual-studio-2013

2
推荐指数
1
解决办法
3328
查看次数

两个异步函数后回调

我打电话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)

javascript asynchronous callback

2
推荐指数
1
解决办法
1077
查看次数

CustomList <T扩展A>类型不匹配

第一个问题在这里修复,但它带来了另一个,我更喜欢创建一个新线程.

我有一个CustomList<T extends A>将与使用Class A1Class 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>.

java android extends arraylist type-mismatch

0
推荐指数
1
解决办法
98
查看次数

从DOM隐藏元素的属性

正如标题所说,我想为元素添加一个新的隐藏属性.为了避免混淆,我希望隐藏属性,而不是元素.

我有一个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 hidden attributes

0
推荐指数
1
解决办法
224
查看次数