��2��@�Ȍ��ȃR�[�f�B���O�̂��߂��F���W�FC# 7�̐V�@�\�ڐ��i1/2 �y�[�W�j

�����_���ŋL�q�ł��郁���o�̑����Athrow���Aout�ϐ��A�^�v���ȂǁAC# 7�ɂ͈ȑO�����R�[�h���Ȍ��ɋL�q�ł���悤�ȋ@�\����������Ă���B

» 2017�N07��26�� 05��00�� ���J
[�R�{�N�F�CBluewaterSoft�^Microsoft MVP for Windows Development]
uWFC# 7̐V@\ڐṽCfbNX

�A�ږڎ�

�@Visual Studio 2017�ƂƂ��Ƀ����[�X���ꂽC# 7�ɂ͑����̐V�@�\������B�����̐V�@�\�͂ǂ̂悤�ȏ�ʂŖ𗧂‚̂��낤���H�@3��ɂ킽���ďЉ�Ă����B

�Ȍ��ȃR�[�f�B���O�̂��߂�

�@�R�[�h��Z���v�̂悭���������Ƃ́A�v���O���}�[�Ȃ�N�������v�����Ƃ��낤�B����́A�Ȍ��ȃR�[�f�B���O�ɖ𗧂�C# 7�̐V�@�\���Љ��B

  • �{�̂����̃����o�̊g��
  • throw��
  • out�ϐ�
  • �^�u���̐����ƕ���

�{�̂����̃����o�̊g��

�@�N���X�����o�̖{�̂������_���̌`�ŊȌ��ɋL�q�ł���@�\�ł���B

�@C# 6�ł́A���Ɏ��������o���Ή����Ă����B

  • �ʏ�̃��\�b�h
  • ���Z�q
  • �ǂݎ���p�̃v���p�e�B�^�C���f�N�T�[

�@C# 7�ł́A�ȉ��̃����o�ɂ��g�����ꂽ�B���悻�����郁���o�������_���ŋL�q�”\�ɂȂ����Ƃ����邾�낤�B

  • �R���X�g���N�^�^�f�X�g���N�^
  • �v���p�e�B�^�C���f�N�T�[��get�^set
  • �C�x���g��add�^remove

�v���p�e�B�������_���ŋL�q����

�@�v���p�e�B��C���f�N�T�[�������_���ŋL�q����ꍇ�A�ǂݎ���p�Ȃ��C# 6�̌`�����A�ǂݏ����”\�ȂƂ���get�^set���•ʂɃ����_���ŏ���C# 7�̌`�����g���Ƃ悢�B

�@�v���p�e�B�������_���ŋL�q���������̃R�[�h�Ɏ����B

using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;

public abstract class BindableBase : INotifyPropertyChanged
{
  // INotifyPropertyChanged�C���^�t�F�[�X�̎����ƁA�w���p�[���\�b�h
  public event PropertyChangedEventHandler PropertyChanged;

  protected void OnPropertyChanged(string propertyName)
    => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

  protected void SetProperty<T>(ref T storage, T value,
                              [CallerMemberName] string propertyName = null)
  {
    if (object.Equals(storage, value))
      return;
    storage = value;
    OnPropertyChanged(propertyName);
  }
}

public class ABindableClass : BindableBase
{
  // �ǂݏ�������v���p�e�B�́Aget�^set���ꂼ��������_���ŋL�q�ł���
  private DateTimeOffset _date;
  public DateTimeOffset Date
  {
    get => _date;
    set => SetProperty(ref _date, value);
  }

  // �ǂݎ���p�v���p�e�B�́A���̂悤�Ȍ`�Ń����_�����g����
  public string NowTime => $"{DateTimeOffset.Now:HH:mm:ss}";
  // �����C# 7�ł͎��̂悤�ɏ������Ƃ��ł��邪�A�������Ē����Ȃ�
  //public string NowTime
  //{
  //  get => $"{DateTimeOffset.Now:HH:mm:ss}";
  //}
}

�v���p�e�B�������_���ŋL�q�����iC# 7�j
C# 7�ł́A�v���p�e�B��get�^set��ʁX�Ƀ����_���ŋL�q�ł���悤�ɂȂ����B
�ǂݎ���p�v���p�e�B�̏ꍇ�́AC# 6�̌`���iget�L�[���[�h�������Ȃ��j�ŏ����������Ȍ��ɂȂ�B
�Ȃ��A���̃T���v���R�[�h��INotifyPropertyChanged�C���^�t�F�[�X�iSystem.ComponentModel���O��ԁj�̎�����ɂȂ��Ă���B�ǂݏ����”\��Date�v���p�e�B�̓f�[�^�o�C���f�B���O�ɑΉ����Ă���BINotifyPropertyChanged�C���^�t�F�[�X�o�ꎞ�ɂ��̎����������o���̂���J���҂́A����Date�v���p�e�B�̊Ȍ����ɋ�����������Ȃ��B�܂��AINotifyPropertyChanged�C���^�t�F�[�X�̃w���p�[���\�b�h��1�AOnPropertyChanged���\�b�h�������_���Ŏ������Ă���B

throw��

�@����́Athrow�X�e�[�g�����g����ʂȏꏊ�ł������Ƃ��Ĉ������̂��B����������������A�ȉ��Ɏ���3�ӏ��ɂ�throw��������悤�ɂȂ����̂��B

  • ���`���̃����_���̒��i�u=>�v�̌��j
  • null���̉��Z�q�u??�v�̌��
  • �������Z�q�i�O�����Z�q�j�u?:�v�̌��

���`���̃����_���̒��ŗ�O�𓊂���

�@���܂ł͎��`���̃����_���̒��ŗ�O�𓊂����Ȃ������B���̂��߁A��肠�����R���p�C����ʂ����߂����Ƀ����o�������Ă����Čォ�炿���Ǝ�������悤�ȏꍇ�ɂ́A���̃R�[�h�Ɏ����悤�Ȏ菇�𓥂�ł����B

public string SampleMethod()
{
  // �R���p�C����ʂ����߂����̉�����
  // ��Ŏ�������̂�Y��Ȃ��悤�A��O�𓊂���悤�ɂ��Ă���
  throw new NotImplementedException();
}
// �� �ォ�炿���Ǝ�������
public string SampleMethod()
{
  return "Hello, world!";
}
// �� �����_���ɂ��ĊȌ���
public string SampleMethod() => "Hello, world!";

�{�̂������_���̃��\�b�h����������菇�̗�iC# 6�܂Łj
�ŏ��ɁA�R���p�C����ʂ����߂����̉��������s���B���̂Ƃ��A��Ŏ�������̂�Y��Ȃ��悤�ɁA���\�b�h�{�̂�NotImplementedException��O�𓊂���悤�ɂ��Ă��������Ƃ���B����ƁAC# 6�܂ł͎��`���̃����_���̒���throw�X�e�[�g�����g�͏����Ȃ������̂ŁA�ʏ�̌`���Ń��\�b�h�������˂΂Ȃ�Ȃ��B
���ɁA���\�b�h�̒��g�������Ǝ������A���ꂩ�烉���_���ɏ��������ĊȌ��ɂ���B����2�X�e�b�v�͓����ɂ���Ă��悢���A������ɂ���A�ŏ��ɕ��ʂ̌`���Ń��\�b�h�������˂΂Ȃ�Ȃ��͖̂ʓ|���B

�@C# 7�ł́A�ŏ����烉���_���ŏ�����i���̃R�[�h�j�B

// C# 7�ł́A�ŏ����烉���_���ŏ�����
public string SampleMethod() => throw new NotImplementedException();
// �� �ォ�炿���Ǝ�������
public string SampleMethod() => "Hello, world!";

�{�̂������_���̃��\�b�h����������菇�̗�iC# 7�j
C# 7�ł́A���`���̃����_����throw��u����̂ŁA�������̂Ƃ����烉���_���ŏ����n�߂���B

null���̉��Z�q��������Z�q�̒��ŗ�O�𓊂���

�@��Ƃ��āA������null�������Ƃ��ɁAArgumentNullException��O�iSystem���O��ԁj�ɑウ�ēƎ��̗�O�i�Ⴆ��System���O��Ԃ�ApplicationException��O�j���o�������Ƃ��悤�B

�@����܂łł���΁A���̃R�[�h�̂悤��null������s����throw�X�e�[�g�����g�������Ă����B

public static string Reverse(object o)
{
  // null�̂Ƃ��AArgumentNullException��O�ł͂Ȃ��A�Ǝ��̗�O���o������
  var s = o as string;
  if (s == null)
    throw new ApplicationException();

  return new string(s.Reverse().ToArray());
}

null�̂Ƃ��ɓƎ��̗�O�𓊂����iC# 6�܂Łj

�@C# 7�ł́A��̃R�[�h��null���̉��Z�q���g���ĊȌ��ɏ�����i���̃R�[�h�j�B

public static string Reverse(object o)
{
  var s = o as string ?? throw new ApplicationException();
  return new string(s.Reverse().ToArray());
}

null�̂Ƃ���throw�����g���ĊȌ��ɓƎ��̗�O�𓊂����iC# 7�j

�@���邢�́A�L���X�g����K�v���Ȃ��Ă���null���������ꍇ�́A���̃R�[�h�̂悤�ɏ������Z�q�i�O�����Z�q�j�̒���throw�ł���B

public static string Reverse2(string s)
  => string.IsNullOrWhiteSpace(s)
    ? throw new ApplicationException()
    : new string(s.Reverse().ToArray());

null�̂Ƃ���throw�����g���ĊȌ��ɓƎ��̗�O�𓊂����iC# 7�j

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright© Digital Advantage Corp. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B