在C#标准中编写了根据以下规则存在数组之间的隐式转换:
从具有元素类型SE的数组类型S到具有的数组类型T. 如果满足以下所有条件,则为元素类型TE:
但如果我做:
int[] j = { 1, 2 };
int[] k = { 1 };
k = j;
没有发出编译器错误。也许我没有理解这条规则的含义......
但是,再次,在上面的示例中,j
和k
的元素类型是值类型。
如果我有:
int[] j = { 1, 2 };
short[] k = { 1, 5 };
j = k;
似乎可以从类型short
的元素到类型int
的元素进行隐式转换,但编译器不能编译。发错。
真诚地,我无法确定此规则的运作方式!
答案 0 :(得分:2)
j
和k
都属于同一类型。有一个整数数组,它们都有一个维度。因此阵列完全符合规则。
这些是文档中描述的数组的错误使用:
object[] j; int[] k;
int[,] j; int[] k;
float[] j; int[] k;
答案 1 :(得分:1)
此代码的作用是使<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="appTelDirectory" ng-controller="directoryList">
<input placeholder="Поиск..." ng-model="searchAll" class="form-control">
<ul>
<li ng-repeat="item in users | filter:searchAll | startFrom:currentPage*pageSize | limitTo:pageSize">{{item.name}}</li>
</ul>
<table>
<tr ng-repeat="item in users | startFrom:currentPage*pageSize | limitTo:pageSize">
</table>
<button ng-disabled="currentPage == 0" ng-click="currentPage=currentPage-1">Previous</button>
{{currentPage+1}}/{{numberOfPages()}}
<button ng-disabled="currentPage >= users.length/pageSize - 1" ng-click="currentPage=currentPage+1">
Next
</button>
</div>
和k
指向同一个数组,j
由于{ 1, 2 }
和k
都是具有相同数量的维度和相同元素类型的数组,因此您可以使用此代码将另一个指向另一个
答案 2 :(得分:0)
int[,,]
(3维)。答案 3 :(得分:0)
S和T指的是数组的类型。在这种情况下,j
和k
都是int[]
类型,因此没有隐式转换,因为它们属于同一类型。
由于元素类型没有差异,因此它们的尺寸无关紧要。