Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C#

C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処

投稿日:2022年7月2日 更新日:

 

<目次>

(1) C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処
 (1-1) エラー概要
 (1-2) 原因
 (1-3) 対策
 (1-4) (参考)範囲演算子について

(1) C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処

(1-1) エラー概要

C#のプログラムで「範囲演算子」の記述[0..^1]をした際に下記のエラーが出ました。
 
(エラーメッセージ)
32 ビット符号付き整数を表します。この型の.NET Frameworkソース コードを参照するを参照してください。、Reference Sourceします。

CS0518: 定義済みの型 'System.Range'は定義、またはインポートされていません
CS0518: 定義済みの型 'System.Index'は定義、またはインポートされていません
・はじめは、C#8.0以上が必要である旨のエラーが出ました
→「考えられる修正内容を表示する」に従い、プロジェクトのC#を8.0にアップデート
(図111)
・その後、上記のエラーメッセージが出現
(図112)
 

(1-2) 原因

「範囲演算子」は「C# 8.0」の機能であるが、「C# 8.0」をサポートする「.NET Core3」に対応していないVisual Studioのバージョン(2019バージョン16.3より前)か、対応していないプロジェクトで使用している事が原因と推定されます。

(1-3) 対策

Visual Studioでプロジェクトを作る際、「C# 8.0」をサポートする「.NET Core3」に対応したテンプレートでプロジェクトを作る事で、エラーを回避する事ができました。
(図131)
 

●Before→Afterの変化

・旧プロジェクトは「.NET Framework 4.7.2」でした。
(図132)
・新プロジェクトは「.NET Core 3.1」でした。
(図133)
・加えて、エラーも解消されていました。
(図134)

(1-4) (参考)範囲演算子について

「[0..^1]」の部分は範囲演算子(Range Operator)と呼ばれ、C#8.0以降に導入された機能です。
「..」→レンジ演算子は連続する範囲の開始と終了を指定するために使う
「^」→ハット演算子
 
(参考)

(1-5) (参考)「.NET」と「C#」バージョン早見表

(表)

C#バージョン VSバージョン .NETバージョン CLRバージョン
(実行エンジン)
リリース日 ソース
1.0 2002 1.0 1.0 2002年2月 参考
1.2 2003 1.1 1.1 2003年4月 参考
2.0 2005 2.0 2.0 2005年11月 参考
3.0 2.0 2006年11月 参考
3.0 2008 3.5 2.0 2007年11月 参考
4.0 2010 4.0 4 2010年4月 参考
5.0 2012 4.5 4 2012年8月 参考
5.0 2013 4.5.1 4 2013年10月 参考
4.5.2 4 2014年5月 参考
6.0 2015 4.6 4 2015年6月 参考
4.6.1 4 2015年11月 参考
4.6.2 4 2016年8月 参考
7.0 2017 2017年3月 参考
4.7 4 2017年5月 参考
7.1 2017 (v15.3) 2017年8月 参考
4.7.1 4 2017年10月 参考
7.2 2017 (v15.5) 2017年12月 参考
4.7.2 4 2018年4月 参考
7.3 2017 (v15.7) 2018年5月 参考
8.0 2019 4.8 4 2019年4月 参考
9.0 2019 (v16.8) 5.0(*注1) (*注2) 2020年11月 参考
10.0 2022 (v17.0) 6.0(*注1) (*注2) 2021年11月 参考
(*注1)
「.NET 5.0」や「.NET 6.0」は「.NETFramework」の新バージョンではなく、あくまで「.NET Core 3.x」の後継バージョンに相当するものです。
(*注2)
.NET Coreにおいては「.NET Core」のバージョンと「CLR」のバージョンは一致するため、明記していない。
 
(表)
C#バージョン VSバージョン .NETバージョン リリース日 サポート終了 ソース
2015 Update 3 .NET Core 1.0 2016年6月 2019年6月 参考
.NET Core 1.1 2016年11月 2019年6月 参考
7.1 2017 (v15.3) .NET Core 2.0 2017年8月 2018年10月 参考
7.3 2017 (v15.7) .NET Core 2.1 2018年5月 2021年8月 参考
.NET Core 2.2 2018年12月 2019年12月 参考
2019 (v16.3) .NET Core 3.0 2019年9月 2020年3月 参考
2019 (v16.4) .NET Core 3.1 2019年12月 2022年12月 参考
9.0 2019 (v16.8) .NET 5 2020年11月 2022年5月 参考
10.0 2022 .NET 6 2021年11月 2024年11月 参考
.NET 7 2022年11月 2023年2月  
.NET 8 2023年11月 2026年11月  

目次にもどる

 

Adsense審査用広告コード


Adsense審査用広告コード


-C#

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

C#でファイルを1行ずつ読み込み処理を行うサンプルプログラム

<目次> (1) C#でファイルを読み込み処理を行うサンプルプログラム  (1-1) 構文  (1-2) サンプルプログラム  (1-3) サンプルプログラムの補足 (1) C#でファイルを読み込み処 …

C#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説

<目次> (1) C#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説  (1-1) IEnumerableとは?  (1-2) IEnumerableの実装の流 …

Xamarin.Formsで画面遷移を実装する手順について+ソースコードも紹介

<目次> (1) Xamarin.Formsで画面遷移を実装する手順について  (1-1) 遷移先ページの追加  (1-2) 画面遷移ロジック追加   (1-2-1) ボタンコントロールの追加   ( …

C#のintに?「はてな」(question mark)が付いている意味について

<目次> (1) C#のintに?「はてな」(question mark)が付いている意味について  (1-1) 「int?」とは?  (1-2) 「int?」の型について  (1-3) 「int?」 …

C#でファイルの存在チェックを行う方法+サンプルプログラムをご紹介

<目次> (1) C#でファイルの存在チェックを行う方法  (1-1) 構文  (1-2) サンプルプログラム (1) C#でファイルの存在チェックを行う方法 (1-1) 構文 (構文) if (!F …

  • English (United States)
  • 日本語
Top