小编aqw*_*ert的帖子

为什么TryParse方法使用out参数而不是ref

在这个问题的背面有点询问out参数的行为,但更关注的是为什么这些TryParse方法使用out而不是ref.

在某些情况下,您确实希望在解析之前初始化参数的值,并在解析失败时保留该值但不关心它是否失败.但是由于out参数,值被重置.

这种情况看起来像这样......

int arg = 123;
Int32.TryParse(someString, ref arg);
Run Code Online (Sandbox Code Playgroud)

但是由于out参数我们必须这样写,这更详细...

int arg;
if(!Int32.TryParse(someString, out arg)
{
    arg = 123;
}
Run Code Online (Sandbox Code Playgroud)

我知道知道解析失败可能非常有用,但使用ref并不排除这一点.

那么为什么这些TryParse方法使用out而不是ref

c# parsing

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

Flutter和Firestore在请求中没有用户信息

使用flutter,我已经安装了firebase-authfirestore包,并且能够使用firebase auth进行身份验证,并且只要我没有围绕用户的任何规则就可以调用firestore.

我有一个调用的按钮,_handleEmailSignIn我确实得到了一个有效的用户(因为他们在Firebase Auth DB中)

import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

final FirebaseAuth _auth = FirebaseAuth.instance;

void _handleEmailSignIn(String email, String password) async {
  try {
    FirebaseUser user = await _auth.signInWithEmailAndPassword(
        email: email, password: password);

    print("Email Signed in " + user.uid);  // THIS works
  } catch (err) {
    print("ERROR CAUGHT: " + err.toString());
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我有另一个按钮调用此函数来尝试将记录添加到testing123集合中.

Future<Null> _helloWorld() async {
  try {
    await Firestore.instance
        .collection('testing123')
        .document()
        .setData(<String, String>{'message': 'Hello world!'});
    print('_initRecord2 DONE');
  } …
Run Code Online (Sandbox Code Playgroud)

dart firebase firebase-authentication flutter google-cloud-firestore

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

无法以编程方式反序列化SOAP消息

当我尝试反序列化soap消息时,我得到以下异常.我这样做是因为我有我想在测试中重用的响应文件.我不能使用真实的服务或类似的东西,因为它不适合我们的测试框架的架构.

    Test 'MyUnitTestMethod' failed: System.InvalidOperationException : There is an error in XML document (1, 2).
----> System.InvalidOperationException : <MySpecialResponse xmlns='http://xsd.com/msgs/v1'> was not expected. 
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) 
at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)


private const string _content =
@"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"">
  <soapenv:Body>
    <ns3:MySpecialResponse xmlns:ns3=""http://xsd.com/msgs/v1"" >
      <header>
        <status>0</status>
      </header>
      <ns3:Payload>
        <ns3:CustomerName>name</ns3:CustomerName>
        <ns3:EmailAddress>test1@mail.com</ns3:EmailAddress>
      </ns3:Payload>
    </ns3:MySpecialResponse>
  </soapenv:Body>
</soapenv:Envelope>";

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3082")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://xsd.com/msgs/v1")]
public partial class MySpecialResponse : BaseResponse {

    private MySpecialPayload payloadField;

    /// <remarks/> …
Run Code Online (Sandbox Code Playgroud)

c# soap exception .net-3.5 xmlserializer

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

Flutter-onPressed功能

我需要在下面的图标上插入onpressed()函数(导航器推至其他页面):

Column buildButtonColumn(IconData icon, String label) {
    Color color = Theme.of(context).primaryColor;
      return Column(
      mainAxisSize: MainAxisSize.min,
       mainAxisAlignment: MainAxisAlignment.center,
       children: [
      Icon(icon, color: color),
      Container(
        margin: const EdgeInsets.only(top: 8.0),
        child: Text(
          label,
          style: TextStyle(
            fontSize: 12.0,
            fontWeight: FontWeight.w400,
            color: color,
             ),
           ),
         ),
       ],
     );
   }

   Widget buttonSection = Container(
    child: Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: [
        buildButtonColumn(Icons.call, 'CALL'),
        buildButtonColumn(Icons.near_me, 'ROUTE'),
        buildButtonColumn(Icons.share, 'SHARE'),
      ],
    ),
  );
Run Code Online (Sandbox Code Playgroud)

flutter

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

如何使用TFS API 2013获取所有迭代路径

我已经使用TFS API库一段时间了,并且在与TFS 2010连接时使用了以下代码来获取迭代路径(来自此页面的代码)...

public IList<string> GetIterationPaths(Project project)
{
   List<string> iterations = new List<string>();
   foreach (Node node in project.IterationRootNodes)
      AddChildren(string.Empty, node, iterations);
   return iterations;
}

private void AddChildren(string prefix, Node node, List<string> items)
{
   items.Add(node.Path);
   foreach (Node item in node.ChildNodes)
      AddChildren(prefix + node.Name + "/", item, items);
}
Run Code Online (Sandbox Code Playgroud)

当我在TFS 2013中查看所有迭代时,事情发生了变化.在TFS 2013中,迭代的概念略有改变,而TFS 2013的API程序集则没有IterationRootNodes

我使用以下代码来获得团队迭代,但这是基于团队的,而不是针对项目的完整迭代集...(目前获得第一个团队但可以编码以获得其他团队)

 var cred = new TfsClientCredentials(new WindowsCredential(), true);
 TfsTeamProjectCollection coll = new TfsTeamProjectCollection("{URI to SERVER}", cred);
 coll.EnsureAuthenticated();

 var teamConfig = coll.GetService<TeamSettingsConfigurationService>();
 var css = coll.GetService<ICommonStructureService4>();
 var …
Run Code Online (Sandbox Code Playgroud)

c# api tfs tfs2013

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