标签: ref

C# 如果数组是通过引用传递的,为什么必须使用修饰符 ref 传递参数数组?

我不明白为什么这个函数是这样写的:

System.Array.Resize<int>(ref int[], int)
Run Code Online (Sandbox Code Playgroud)

如果默认情况下通过引用传递数组,为什么不是这样写的:

System.Array.Resize<int>(int[], int)
Run Code Online (Sandbox Code Playgroud)

c# arrays function ref modifier

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

useRef 不起作用 [TypeError: null 不是对象(评估 'filed2.current.focus')]

每当按下键盘上的下一个按钮时,我都会尝试将注意力集中在下一个输入字段上。

从 React Native 文档中我了解到我们需要使用 useRef 钩子。但是按照文件

TypeError: null is not an object (evaluating 'filed2.current.focus')

我正在使用所有软件包的最新版本,以及带有打字稿模板的新反应本机应用程序。

这是我到目前为止所拥有的代码:

import React, {useRef} from 'react';

...

  const filed1 = useRef(null);
  const filed2 = useRef(null);

  const onButtonClick = () => {
    filed2.current.focus();
  };

  return (
    <>
      <FormInputPassword
        ref={filed1}
        returnKeyType="next"
        onSubmitEditing={onButtonClick}
        blurOnSubmit={false}
      />
      <FormInputPassword
        ref={filed2}
        returnKeyType="done"
        blurOnSubmit={false}
      />
    </ >
  );
Run Code Online (Sandbox Code Playgroud)

编辑:


function FormInputPassword(props) {
  return (
      <FormInputView>
        <Input {...props} />
      </FormInputView>
  );
}


FormInputPassword.defaultProps = {
  blurOnSubmit: true,
  autoCorrect: false,
  editable: true,
};
Run Code Online (Sandbox Code Playgroud)

ref typescript reactjs use-ref

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

C# foreach 是否从 IEnumerable 创建元素的副本?

在什么情况下 foreach 使用引用,在什么情况下 foreach 使用副本?

using System;
using System.Linq;

class A {
    public int v;
}

class Program
{
    static void Main() {
        var ints = new int[] { 0, 1, 2 };
        
        var array = ints.Select(i=>new A {v = i}).ToArray();
        foreach(var a in array) {
            a.v = 999;
        }

        var enumerable = ints.Select(i=>new A {v = i});
        foreach(var a in enumerable) {
            a.v = 999;
        }

        Console.WriteLine($"array.First = {array.First().v}");
        Console.WriteLine($"enumerable.First = {enumerable.First().v}");
    }
}
Run Code Online (Sandbox Code Playgroud)

jdoodle.com/ia/Jce

输出:

array.First = 999 …
Run Code Online (Sandbox Code Playgroud)

c# linq foreach ref

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

输入参考范围

我正在研究数据库,目前正在研究对象关系数据库项目,我遇到了一个关于对象表中可能的约束数量的小问题.我正在使用Hector Garcia-Molina(和其他作者)的"数据库系统:完整的书"作为参考,并且有一个像这样的通用SQL示例:

CREATE TYPE StarType AS (
  name CHAR(30),
  address AddressType,
  bestMovie REF(MovieType) SCOPE Movies
);
Run Code Online (Sandbox Code Playgroud)

现在,我的项目中有一种类似的类型,因为它也使用类型中的另一种类型的引用,但是在那里放置引用的子句不包括Oracle中的SCOPE(至少我还没有找到它)在文档中它输出错误).所以我有这样的类型:

CREATE OR REPLACE TYPE "ApplicationType" AS OBJECT (
  "person" REF "PersonType",
  "competition" REF "CompetitionType",
  "dateApplied" DATE
);
/
Run Code Online (Sandbox Code Playgroud)

......有效.但是当我想约束REF列时,我只能约束一个,如下所示:

CREATE TABLE "Applications" OF "ApplicationType" (
  "person" SCOPE IS "People" /* or "competition" SCOPE IS "Competitions" */
)
OBJECT IDENTIFIER IS SYSTEM GENERATED;
Run Code Online (Sandbox Code Playgroud)

有没有办法为两个REF列提供约束?

oracle types scope constraints ref

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

查询F#中的泛型用法,特别是新的T()和ref单元格

这个C#的F#等价物是什么:

    public T GetNewItem()
    {
        return new T();
    }
Run Code Online (Sandbox Code Playgroud)

另外,如何将新的T()作为ref单元格返回,以便在需要out或ref参数的.Net库中使用?

generics f# mutable ref

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

C#struct by-ref

有没有办法在C#中能够做到这一点:

map.player.x = 5;
Run Code Online (Sandbox Code Playgroud)

保持player类型Point(或静默可转换为一个)并仍然能够在执行任务时检查值的正确性?

更清楚:

  • Point 是由C#/ .net标准库定义的结构,并按值传递.
  • 创建一个包装类并将所有Point方法实现为call-throughs Point是漫长而乏味的.
  • 拥有一个只包含隐式转换的包装类Point将不允许上述内容.它必须写成(Point)(map.player).x,这是笨拙的.

.net c# struct ref

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

键入的ref cell?

我是一个ocaml菜鸟.使用普通的旧的ref或int或其他简单的内置类型,到目前为止对我来说都是各方面的预期.我在元组的上下文中使用它们,其中ref是元组的成员.我可以更新refs,取消引用它们等.

 # let e = 1, ref 1;;
 val e : int * int ref = (1, {contents = 1})
 # snd e := 2;;
 - : unit = ()
 # e;;
 - : int * int ref = (1, {contents = 2})
 # !(snd e);;
 - : int = 2
Run Code Online (Sandbox Code Playgroud)

但是一旦我将一个命名类型"ref"声明为其他聚合(甚至是内置的简单)类型,事情总的来说就很糟糕了.我发现我不能再改变引用了,因为之前它们没有被声明为某种类型的"ref"类型.的!并且:=运算符失败.

语义似乎以奇怪的不一致的方式改变.以下只是一个例子.为什么编写下面的第一个代码块是合法的,但在顶部循环中执行类似的操作似乎是非法的(下面进一步说明)?第一个块被编译器接受,并且我们可以匹配一个构造类型的ref并使用!来访问它的值.第13行和第14行的运算符.这都在循环队列的上下文中,并使用#use从顶部循环中的文件加载:

type 'a element = 'a * 'a pointer 
and 'a pointer = Pointer of 'a element ref;;
let next (_,n) = n;;
type 'a queue = 'a …
Run Code Online (Sandbox Code Playgroud)

union ocaml types ref dereference

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

使用ref with lists以及如何更新列表

我正在写一个游戏,只会为我在世界上的碰撞而上课.我想在它的构造函数中传递两个列表,一个包含所有敌人,另一个包含玩家触发的所有子弹.

这是在XNA中完成的2D游戏,我应该这么说,但我觉得这里发帖是因为它更多地与C#ref关键字有关.如果我在将列表传递给构造函数时使用ref关键字.

现在,如果我开始搞乱列表中的元素,删除和添加元素,修改等,因为它们是通过引用传递的,所以我永远不必将列表重新传递到类中,如果列表本身包含在其他一些类中?

public Collsion_manager(ref List<Bullet> bullets_world, ref List<Enemy_class> enemies_world)
{
}
Run Code Online (Sandbox Code Playgroud)

c# parameters arguments ref keyword

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

在指针参数上使用ref和out关键字

我正在学习C和C#,这个问题适用于C#.你为什么要在指针上使用out和ref关键字?使用指针,您可以直接访问变量.我在msdn上找到了这个代码:here.

这是代码:

static int value = 20;
public unsafe static void F(out int* pi1, ref int* pi2)
{
  int i = 10;
  pi1 = &i;
  fixed (int* pj = &value)
  {
     // ...
     pi2 = pj;
  }
}
Run Code Online (Sandbox Code Playgroud)

c# pointers ref out

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

如何访问传递给构造函数的ref bool变量?

我有一个主表单,它调用较小的表单.在主窗体中,我有一个被设置为的bool被调用,但是较小的形式的目的是检查一些事情并查看数据是否准备就绪,在这种情况下它设置为._dataReadyfalse_dataReadytrue

这是我的问题:我使用输入参数(如(ref bool _dataReady))调用迷你表单但问题是我无法在构造函数块之外访问它.

我试图使一个private bool并设置ref到,但改变的状态后,private boolref没有采取变化,不像是如何面向对象的编程工作.

这是我的一些代码:

//这就是我在主要内容中调用迷你形式的方式

new FrmAccounting(MyTextBox1.Text.Trim().Replace(",", "").ToInt32(),ref _dataReady).ShowDialog();
Run Code Online (Sandbox Code Playgroud)

这是迷你表单和代码的构造函数:

public FrmAccounting(decimal Price,ref bool _dataReady)
{
    InitializeComponent();
    dataReady=_dataReady;
}

private bool dataReady;
Run Code Online (Sandbox Code Playgroud)

然而,private bool在form(dataReady)true中设置不会改变ref(再次不像对象的工作方式)......这就是我认为会发生的事情.

我的问题是:如何更改,ref以便我可以直接在主要结果?

c# ref winforms

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