小编yum*_*sta的帖子

C#lambda,当你想到的时候没有采用局部变量值?

鉴于:

void AFunction()
{

   foreach(AClass i in AClassCollection)
   {
      listOfLambdaFunctions.AddLast(  () =>  {  PrintLine(i.name); }  );
   }
}

void Main()
{
    AFunction();
    foreach( var i in listOfLambdaFunctions)
       i();
}
Run Code Online (Sandbox Code Playgroud)

现在你会认为这样做会对等:

void Main()
{

    foreach(AClass i in AClassCollection)
       PrintLine(i.name);
}
Run Code Online (Sandbox Code Playgroud)

但它没有,它将做的是每次打印AClassCollection中最后一项的名称!所以基本上每个lambda函数都使用相同的项目.我怀疑"当lambda被创建时"或"当它使用其中使用的外部变量的快照时"可能会有一些延迟,或者基本上只是持有'对局部变量的引用'i'

所以我这样做了:

string astr = "a string";
AFunc fnc = () => { System.Diagnostics.Debug.WriteLine(astr); };
astr = "changed";
fnc();
Run Code Online (Sandbox Code Playgroud)

而惊喜,惊喜,它输出"改变了!"

我正在使用XNA 3.1(无论是什么c#)

到底是怎么回事?lambda函数以某种方式存储变量或其他东西的"引用"吗?反正这个问题呢?

c# lambda

12
推荐指数
3
解决办法
9909
查看次数

为 Firebase Cloud Functions 启用 Cors

我正在尝试为我的 http Cloud Functions启用cors。但是,即使按照这个使用 cors 的示例,在尝试时fetch,它仍然给我错误:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

这是我的云功能:

const functions = require('firebase-functions');
const cors = require('cors')({origin: true});

exports.foo = functions.https.onRequest((req, res) => {
    return cors(req, res, () => {
        let format = req.query.format;
        if (!format) {
            format = req.body.format;
        }

        //do stuff

    });
});
Run Code Online (Sandbox Code Playgroud)

这是我获取的方式:

fetch("https://us-central1-my-database.cloudfunctions.net/foo", {
    method: "POST", 
    body: JSON.stringify(data),
    headers: {
      "Content-Type": "application/json"
    }
}).then((res) => {
    // ...
}).catch((err) => {
    // ...
});
Run Code Online (Sandbox Code Playgroud)

为什么 cors 不起作用,我该如何解决?

javascript node.js cors firebase google-cloud-functions

8
推荐指数
1
解决办法
5302
查看次数

Unity的iOS版本需要In-App购买,尽管我的游戏不使用IAP

我在Unity中有一个使用Unity Analytics服务的游戏.我确保我的Unity版本在Unity编辑器中没有应用程序内购买.我从来没有在我的游戏中实现应用程序内购买,我已将IAP选项设置为关闭:

Unity_IAP_off

但Unity生成的我的Xcode项目显示错误,"'应用程序内购买'功能仅适用于在Apple Developer Program中注册的用户."
Xcode需要IAP

我错过了什么?

xcode unity-game-engine in-app-purchase ios

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

掩码UI图像/ RawImage

我最近遇到了UI问题.我打开了一个新的2D项目并使用带有Image组件的GameObject创建了一个画布.然后我通过右键单击添加了一个精灵Assets > Create > Sprites > Circle.这为我的Assets文件夹添加了一个圆形精灵.

问题是当我选择图像组件的源图像作为圆时,它仍然显示为矩形. 截图显示白色矩形

圆形精灵被导入为纹理类型的精灵.

其他形状也会出现此问题,例如三角形.

我正在使用Unity 5.6.0b9 Personal.构建目标是PC,Mac,Linux Standalone.

我可能错过了很简单的事情.任何帮助表示赞赏!

user-interface unity-game-engine

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

具有身份验证的Cloud Firestore

我一直在寻找一种方法来使用身份验证与Firebase的新Cloud Firestore.我知道这是可能的,但在文档和其他地方都没有好的指南.

有人可以解释一下如何在get()从Cloud Firestore获取数据时提供身份验证UID 吗?

这是我的安全规则:

service cloud.firestore {
  match /users/{userID} {
    allow read, write: if request.auth.uid == userID;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

var db = firebase.firestore();
var docRef = db.collection("users").doc(uid); //lets say "uid" var is already defined
docRef.get().then(function(doc) {
  if (doc.exists) {
      console.log("Document data:", doc.data());
  } else {
      console.log("No such document!");
  }
}).catch(function(error) {
  console.log("Error getting document:", error);
});
Run Code Online (Sandbox Code Playgroud)

我的数据库结构只是root用户的"用户"集合,然后是每个用户的文档(以UID命名).我想用用户的UID获取文档.

当然,由于安全规则,这会产生错误"缺少权限或权限不足",这是预期的.

这个问题可能看起来很简单,但是如果有人能找到一些好的文档,那就太好了!

javascript authentication firebase firebase-authentication google-cloud-firestore

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

查询皇室战争 API

《皇室战争》是一款在线、实时、多人游戏。因此,它必须有一个数据库来存储所有信息。我想知道您是否可以以及如何查询数据库/api。

我希望能够获得玩家信息。我知道这是可能的,因为Stats Royale成功地做到了这一点。他们在自己的服务器上进行计算,所以我在他们的客户端代码中没有发现任何东西。

提前致谢!

httprequest

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